python全栈06-----基于调度方法的视图,蓝图

本文详细介绍了Python Flask中基于调度的视图和蓝图的使用。通过实例展示了如何创建类视图、定义GET和POST方法,以及处理账号密码验证。接着讲解了蓝图的概念和创建,如何注册蓝图并设置URL前缀,以及蓝图中模板和静态文件的查找路径。还讨论了`url_for`生成蓝图URL的方法,并探讨了子域名的配置和使用。
摘要由CSDN通过智能技术生成

基于调度方法的视图

Flask还为我们提供了另外⼀种类视图flask.views.MethodView,对每个HTTP ⽅法执⾏不同的函数(映射到对应⽅法的⼩写的同名⽅法上)
就是定义请求服务器的方法(get,post等)
  • 我们定义一个LoginView类,继承MethodView方法
from flask import Flask,views,render_template

app = Flask(__name__)

@app.route('/')
def index():
    return '首页'

class LoginView(views.MethodView):
    def get(self):
        return render_template('login.html')

app.add_url_rule('/login/',view_func=LoginView.as_view('login'))



if __name__ =='__main__':
    app.run(debug=True)
  • 定义一个get方法,然后打开网址

  • 我们用post请求访问一下试试

  • 我们再来尝试一下post请求,定义一个post方法
class LoginView(views.MethodView):
    def get(self):
        return render_template('login.html')

    def post(self):
        name = request.form.get('name')
        password = request.form.get('password')
        if name == 'zaaaacki' and password == 456:
            return '登录成功'
        else:
            return '账号密码错误'
  • 注意我们的password后面对的456没有引号不是字符串,我们尝试访问一下网页

  • 访问失败
  • 我们在把456加上引号,访问网页

  • 访问成功,所以我们得出结论,在页面中输入的456是字符串形式的
  • 我们来定义一个账号密码错误的提示页面
    def post(self):
        name = request.form.get('name')
        password = request.form.get('password')
        if name == 'zaaaacki' and password == '456':
            return '登录成功'
        else:
            return render_template('login.html',error='账号密码错误')
<body>
    <h1>这是登陆页面</h1>
    {% if error %}
        <p style="color:red">{
   { error }}</p>
    {% endif %}

</body>
  • 打开网页,输入错的密码

  • 再做一下优化
  • 给我们的get函数再传入一个error参数,在我们get函数中返回error
  • 在post函数中定义如果账号密码错误,调用get('账号密码错误')函数
class LoginView(views.MethodView):
    def get(self,error):
        return render_template('login.html',error=error)

    def post(self):
        name = request.form.get('name')
        password = request.form.get('password')
        if name == 'zaaaacki' and password == '456':
            return '登录成功'
        else:
            return self.get('账号密码错误')
<body>
    <h1>这是登陆页面</h1>
    {% if error %}
        <p style="color
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值