Flask框架
Flask是一个比较轻量级的web框架,可以通过第三方扩展来增加功能。
如下图所示,客户端将请求发送给后端,后端进行处理之后响应。

创建flask框架用pycharm可以直接创建(社区版不行,可以直接复制过来),其中HTML一定要放在templates里面,如果放在其他文件夹里的话就不会被读取到就会频繁的报错。(如果导包的时候提示没有安装flask,那么就用pip安装即可,pip可解万物)

接下来我们开始正式搞一搞flask吧
1、按照惯例,从hello,world开始吧,直接上代码吧
from flask import Flask,render_template,request import time import threading from flask import request app = Flask(__name__) @app.route('/') #这里是用来写path的,如果“/login”那么在端口后+/login就可以访问了 def hello_world(): return "hello world" if __name__ == '__main__': app.run(debug = True) #debug之后就不用一直重启服务了,只要刷新即可
在浏览器中打开之后返回的值就是这样的

2、和前端页面交互一下吧,把前端写的页面展示出来
@app.route('/') def show_html(): return render_template("1.html") #这一步是返回1.html这个文件
展示出来的是这样的

3、后端如何传值给前端
#先看看后端 @app.route('/') def show_html(): s = "这是后端传过来的值" return render_template("1.html",s = s) #后端传值的时候只需要定义好参数,然后将参数跟在文件后面在定义个变量名就可以 #再看看前端 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>{{s}}</p> #前端引用的时候用{{}}来表示接收后端传来的值 </body> </html>
执行之后展示出来是这个样子的

4、前后端交互(以前端提交表单+后端对状态和返回字段给前端,前端判断展示为例子)
#后端代码 @app.route('/login_yanling',methods=['GET','POST']) #浏览器发起的默认为get请求,但是表单提交的时候是post请求,定义请求方法用:methods=['GET','POST'],这个表示两个都支持 def login_yanling(): if request.method == "POST": username = request.form.get("username") pwd = request.form.get("password") if username == "yanling" and pwd == "123": message = "succ" return render_template("loginYanling.html",message = message) else: message = "fail" return render_template("loginYanling.html",message = message) else: message = "weidenglu" return render_template("loginYanling.html",message = message) #以上的判断为:如果是未登录(主要用请求的方式判定,提交的方式为POST则认为是提交表单),返回weidenglu,登录失败返回fail,登录成功返回succ #前端代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录</title> </head> <body> {% if message == "weidenglu" %} <p>未登录状态,请登录</p> <form action="login_yanling" method='POST'> 用户名:<input type="text" name="username"><br><br> 密码:<input type="password" name="password"><br><br> <input type="submit" name="登录" value="提交按钮"> </form> {% endif %} {% if message == "succ" %} <p>登录成功</p> {% endif %} {% if message == "fail" %} <p>登录失败,请重新登录</p> <form action="login_yanling" method='POST'> 用户名:<input type="text" name="username"><br><br> 密码:<input type="password" name="password"><br><br> <input type="submit" name="登录" value="提交按钮"> </form> {% endif %} #在HTML中写if语句的时候用{%if%}开头{%endif%}结束;如果后端返回的是weidenglu则返回未登录+登录框,如果是fail则返回登陆失败请重新登录+登录框,如果是succ,直接返回登录成功 </body> </html>
页面展示如下:




浙公网安备 33010602011771号