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

【Flask】CBV模式

时间:2019-10-05 12:25:30      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:from   参数   none   ping   属性   route   pac   定义函数   形式   

Flask中的CBV模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
‘‘‘
flask中的CBV模式:
(1)导入views模块: from flask import views
(2)定义类,继承views.MethodView类: class 类名(views.MethodView)
(3)在类中定义函数名为允许的请求方式的小写形式,进行函数定义,如def get(self):...
(4)添加路由规则:
     CBV:app.add_url_rule(rule,endpoint=‘‘,view_func=类名.as_view(name=‘‘))
     FBV:app.add_url_rule(rule,endpoint=‘‘,view_func=函数名))(直接替代@app.route()方式)
 
     参数:
        rule 请求路径
        endpoint设置mapping路由映射函数rule:{endpoint:func}
        view_func路由映射的视图函数或者类(as_view()中的name参数设置当前路由映射函数名,唯一指定,不设置endpoint自动为name值)
(5)methods=[]类中设置属性,添加允许的请求方式,不写默认都支持
(6)decorators = []对类中的函数都加上装饰器,列表中可以放多个装饰器函数名,以此执行
‘‘‘
技术图片
from flask import Flask,views,render_template,request
app = Flask(__name__)

class Login(views.MethodView):
    # methods = ["GET","POST"]  # 指定请求方法,这里可以省略不写,根据请求方法自动找到对应的方法去执行
    decorators = [] #对类中的函数都加上装饰器,列表中可以放多个装饰器函数名,依次执行
    def get(self):
        return render_template("login.html")

    def post(self):
        username = request.form.get("username")
        password = request.form.get("password")
        # 判断用户名和密码是否正确
        if username == "henry" and password == "123456":
            return "200 ok"
        else:
            return "用户名或密码错误"
app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login"))  # name其实就是用来填充endpoint的,如果endpoint有值那么name就没有用,且name这个参数是必填的,相当于别名
app.run("0.0.0.0",9527)

【Flask】CBV模式

标签:from   参数   none   ping   属性   route   pac   定义函数   形式   

原文地址:https://www.cnblogs.com/youxiu123/p/11624305.html

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