flask的类视图

#_*_ encoding: utf-8 _*_   @author: ty  hery   2020/4/6
from flask.views import View
from flask import Flask, render_template, request,views,jsonify

app = Flask(__name__)

class PersonalView(View):
    def dispatch_request(self):
        return "知了课堂"
# 类视图通过add_url_rule方法和url做映射
app.add_url_rule('/users/',view_func=PersonalView.as_view('personalview'))


class LoginView(views.MethodView):
    # 当客户端通过get方法进行访问的时候执行的函数
    def get(self):
        return render_template("login.html")

    # 当客户端通过post方法进行访问的时候执行的函数
    def post(self):
        email = request.form.get("email")
        password = request.form.get("password")
        if email == '123@qq.com' and password == '111111':
            return "登录成功!"
        else:
            return "用户名或密码错误!"

# 通过add_url_rule添加类视图和url的映射,并且在as_view方法中指定该url的名称,方便url_for函数调用
app.add_url_rule('/myuser/',view_func=LoginView.as_view('loginview'))
#_*_ encoding: utf-8 _*_   @author: ty  hery   2020/4/6



class Listview(views.View):
    def dispatch_request(self):
        return 'list view'

class JsonView(views.View):
    def get_data(self):
        raise NotImplementedError
    def dispatch_request(self):
        return jsonify(self.get_data())

class ListView(JsonView):
    def get_data(self):
        return {'username':'zhiliao','password':'111111'}

app.add_url_rule('/list/',endpoint='list',view_func=ListView.as_view('list'))  # 先去执行ListView里面的dispatch_request方法,没有执行他父辈的,他父辈执行ListView里面的get_data方法获取数据

if __name__ == '__main__':
    app.run('0.0.0.0',8888,debug=True)
   # app.run('0.0.0.0',port=8888,debug=True)

templates/login.html

<html>
	<head>
    <meta charset="UTF-8">
	<title>index</title>
{#    <link rel="stylesheet" href="/sss/commons.css"/>#}
	</head>
	<body>
		<h1>Hello Login 哈哈哈</h1>
        <form method="POST" >
            email: <input type="text" name="email" placeholder="邮件地址"/></br>
            password: <input type="password" name="password" placeholder="密码"/></br>
            <input type="submit" value="提交" />
        </form>
	</body>
	<footer>
	</footer>
</html>
posted @   ty1539  阅读(67)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示