码迷,mamicode.com
首页 > 其他好文 > 详细

Flask介绍及简单使用

时间:2019-11-21 20:10:46      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:err   code   temp   delete   post   environ   传参   get   函数名   

Flask

Django是一个大而全的框架,Flask是一个轻量级的框架。

区别:

  • Django内部集成了大量的组件;请求处理是逐一封装和传递;
  • Flask本身并没有太多的功能,但是第三方组件非常丰富;利用上下文管理来实现请求处理

Flask的wsgi

Flask框架依赖werkzeug wsgi,flask本身没有的wsgi。

from werkzeug.serving import run_simple

class Flask(object):
    
    def __call__(self,environ, start_response):
        return "xx"
    
    def run(self):
        run_simple('127.0.0.1', 5000, self)
        
app = Flask()

if __name__ == '__main__':
    app.run()

Flask 的简单操作

  • Flask 路由:以装饰器的形式
@app.route("/index")
def index():
    data_dict = DATA_DIC
    return render_template("index.html",data_dict=data_dict)
  • Flask 默认允许的请求方式为get,接收其他请求需要设置:
@app.route("/login",methods=["POST","GET"])  
  • Flask 别名设置,默认别名为函数名并且不能重名
from flask import Flask,render_templaterequest,url_for

app = Flask(__name__)
@app.route("/index",endpoint="homepage")    # 设置别名
def index():
    data_dict = DATA_DIC
    return render_template("index.html",data_dict=data_dict)

@app.route("/edit")
def edit():
    return redirect(url_for("homepage"))    # 使用别名
  • Flask 获取post请求的数据
@app.route("/login",methods=["POST","GET"])     # 设置请求方式
def login():
    user = request.form.get("user")     # 通过request.form获取post数据
    pwd = request.form.get("pwd")
    if user == "xxx" and pwd == "123":
        return redirect("/index/")
    error = "用户名或密码错误"
    return render_template("login.html",error=error)
  • Flask 获取get请求数据
@app.route("/edit",methods=["POST","GET"])
def edit():
    nid = request.args.get("nid")  # request.args获取get请求中的值
  • Flask 获取URL中的值
# 请求URL:http://127.0.0.1:5000/edit?nid=2

@app.route("/delete/<int:nid>")     # 接收数据,设置数据类型
def delete(nid):
    del DATA_DIC[nid]
    return redirect(url_for("homepage"))
  • Flask 返回值
return "xxx"      # 返回字符串
return jsonify({"code":1000,"msg":"xxxx"})        # 返回json格式数据
return render_template("login.html",xxx=a)      # 返回模板,可以传参数
return redirect("/index/") 或 redirect(url_for("homepage")) # 跳转到URL,或别名

Flask介绍及简单使用

标签:err   code   temp   delete   post   environ   传参   get   函数名   

原文地址:https://www.cnblogs.com/os-linux/p/11907792.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!