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,或别名
posted @   忘川的彼岸  阅读(426)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示