Flask框架基础

时间:2020-03-08 17:40:52   收藏:0   阅读:80

基本用法:

pip install flask

#导入
from flask import Flask

#实例化
app = Flask(__name__)

#路由系统
@app.route("/index")

#视图函数
def index():
    return "首页"

 

 

1.Flask请求方法(Response三剑客)

技术分享图片
from flask import Flask,    redirect,    render_template,    jsonify,    send_file

app = Flask(__name__)

@app.route("/")
def index():
    return redirect("/login")

@app.route("/login")
def login():
    return render_template("index.html")


@app.route("/json")
def json():
    a = {"name":"alex","age":1}
    return jsonify(a)

@app.route("/file")
def file():
    return send_file(timg2XPV7QMI.jpg)


app.run(debug=True)

‘‘‘Response三剑客:
HttpResponse: return "Hello World" 返回字符串至客户端

from flask import render_template
render : return render_template("login.html")
与Django中的 render 使用一致 返回模板由浏览器渲染

from flask import redirect
redirect: return redirect("/login") # 302
跳转,重定向URL

Flask中小儿子:
1.from flask import jsonify
retrun jsonify({name:111}) # 返回json标准的字符串 
Content-Type:application/json

2.from flask import send_file
return send_file(path)
# 打开文件并返回文件内容(自动识别文件格式)
‘‘‘
View Code

2.falsk 中的 request 

技术分享图片
from flask import Flask,    redirect,    render_template,    jsonify,    send_file,    request

app = Flask(__name__)

@app.route("/")
def index():
    return redirect("/login")

@app.route("/login",methods=("POST","GET"))
def login():
    if request.method == GET:
        return render_template("login.html")
    else:
        return "登陆成功"
‘‘‘from flask import request
request.method # 请求方式
request.form # 存放FormData中的数据 to_dict 序列化成字典
request.args # 获取URL中的数据 to_dict 序列化成字典
request.url # 访问的完整路径
request.path # 路由地址
request.host # 主机地址
request.values # 获取 FormData and URL中的数据 不要用to_dict
request.json  # 如果提交时请求头中的Content-Type:application/json 字典操作
request.data  # 如果提交时请求头中的Content-Type 无法被识别 将请求体中的原始数据存放 byte
request.cookies # 获取Cookie中的数据
request.headers # 获取请求头
request.files # 序列化文件存储 save()
‘‘‘
View Code

3.flask使用的模板语法(jinja2语法)

技术分享图片
Jinja2
{{}} 引用变量 执行函数
{%%} 逻辑代码
|safe Markup 安全标签字符串
@app.template_global()
@app.template_filter()
{% macro create_input(na,ty) %}
{{ na }} : <input type="{{ ty }}" name="{{ na }}">
{% endmacro %}
{{ create_input("username","text") }}
View Code

4.flask使用session的方法

技术分享图片
from flask import Flask,    render_template,    redirect,    request,    session

app = Flask(__name__)
#1.设置session——key
app.secret_key = "Jackman"



@app.route("/")
def index():
    #3.取session
    if not session.get("user"):
        return redirect("/login")
    return "首页视图"

@app.route("/login",methods=("POST","GET"))
def login():
    if request.method == "GET":
        return render_template("login.html")
    else:
        #2.设置session
        session["user"] = request.form.get("user")
        return redirect("/")

app.run(debug=True)

‘‘‘Flask 中的 Session

app.secret_key = "加密字符串" # 用于序列化和反序列化 session信息

由于Flask中默认Session 存放位置 - 客户端的Cookies中
所以Session需要加密 用到 secret_key
请求进入视图函数 带上cookie 将Session从cookie序列化出来 通过secret_key 反序列化成字典
Flask-Session
‘‘‘
View Code

 

原文:https://www.cnblogs.com/cou1d/p/12443663.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!