• Flask介绍及简单使用


    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,或别名
    
  • 相关阅读:
    XSS的本质和防御
    关于网站的数据安全总结
    教培行业的复杂性
    教育到底想要什么(一)
    如何在流中重复获取body数据内容
    教育到底想要什么(二)
    鼓吹海
    翻译:三分钟学懂JSON
    翻译:ASP.NET MVC 3:Razor的隐式和显示代码嵌入
    分享到各种热门网站的html代码实现
  • 原文地址:https://www.cnblogs.com/os-linux/p/11907792.html
Copyright © 2020-2023  润新知