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时下按用户登陆,并实现学生管理【学生数据增删改查】

  

 

posted @ 2018-10-09 11:31  dmyHero  阅读(106)  评论(0)    收藏  举报