Flask初识
Flask web框架
1.Flask与Django的简单对比
与Django对比:
Django web框架
优点:Django大而全,里面的组件非常的多
缺点:资源浪费很严重
Flask Web框架
优点:
1.短小精悍【只有session】,易扩展,
2.官方承认支持的三方组件【稳定性差一点】
缺点:
稳定性相对较差
Flask默认端口5000
使用场景:
大型应用用Django,快速组件,小型应用用flask
2.第一个Flask项目
三行代码启动Flask
1 from flask import Flask 2 app = Flask(__name__) 3 app.run()
六行代码启动项目Hello world
引入flask模块,
实例化app
定义视图函数,
app.route装饰器
运行app
from flask import Flask app = Flask(__name__) @app.route('/')
#请求方式默认只支持get请求,route设置methods时,支持设置的请求方式
#例如@app01.route('/login/',methods=('POST','GET')) def index(): return 'Hello world!' app.run()
2.1 路由,视图函数,返回值
路由@app.route('/',methods=('GET','POST'))
视图函数def index():
return '123'
返回值 response三剑客
3.response三剑客
1 #1
#from flask import Response
2 return '123' //return Response('123')两种写法效果相同 3 4 #2 5 from flask import redirect 6 7 return redirect 8 9 #3 10 from flask import render_template 11 return render_template
数据传递,读取与渲染⬇⬇⬇
4.request
Flask框架的request与Django的不太一样,通过导入request模块使用
使用:
from flask import request
引入request模块,请求进来后会覆盖此request
request封装的信息
request.method 请求方式
request.path 除去ip+端口的地址
request.headers 请求头
request.body
request.host 请求地址
request.hout_url 请求url
request.url请求完整路由
request传递的数据
request.args 接收url?拼接的参数,特殊字典,get取值
request.data 不在解析规则内的在request.data中,,form和value中都找不到数据时,在data中找
request.json 解析json请求数据
request.form form表单提交的值--》特殊字典,get取值
request.values 包含args和forms数据 特殊字典,get取值
values会先把form序列化再把url序列化,后序列化的覆盖前面的,所以取到url里面的
数据取值
点语法--》.属性/.方法/get方法/[字典key]/[列表index]
to_dict()将request封装的特殊字典转化为普通字典
5.jinja2
Flask Jinja2与Django的template极为相似,语法更贴近python
{{}}引用变量(包括函数,Flask中后端传来的函数,前端可以直接使用)
{% %}带有逻辑的代码
标签的安全渲染
后端Markup,前端的|safe
过滤器与全局装饰器
@app.template_filter()
@app.template_global()
macro宏指令
6.Flask的Session
Flask中使用session设置app.secret_key = '加密字符串'
from flask import session
加密后的session存放在cookies,请求到来,带上cookies,将session反序列化后拿到数值
7.extend/block与include的使用
模板继承,include的使用方法与Django使用方法相同
补充:状态码302:跳转
练习:
基于session时下按用户登陆,并实现学生管理【学生数据增删改查】

浙公网安备 33010602011771号