flask 之cbv ,flash闪现,Flask_Session,WTForms - MoudelForm
from flask import views
class LoginView(views.MethodView):
def get(self):
return
def post(self):
return
app.add_url_rule("/login",endpoint=None,view_func=LoginView.as_view("login"))
2.flash:
from flask import flash,get_flash_messages
flash("","tag")
get_flash_messages("tag")
from flask_session import Session
from flask import session
app.config["SESSION_TYPE"] = "redis"
app.config["SESSION_REDIS"] = Redis("127.0.0.1",6379,db=7)
Session(app)
session["user"] = "123"
session.get("user")
from wtfroms.fields import simple,core
from wtfroms import Form,validators
class LoginForm(Form):
username = simple.StringFields(
label = "" #看源码 __init__
)
lf = LoginForm()
render_template("html",lf=lf)
{{ lf.uername }}
{{ lf.uername.label }}
{{ lf.uername.errors.0 }}
lf = LoginForm(request.form)
if not lf.validata():
render_template("html",lf=lf)
lf.data.get("username")
from flask import Flask,request,render_templatefrom flask import viewsfrom wtforms import Form #类似 form表单from wtforms.fields import simple,corefrom wtforms import validators #验证器
app=Flask(__name__)#登录页面认证class LoginForm(Form): username=simple.StringField( label='用户名', validators=[ validators.DataRequired(message='不能为空'),#直接把错误写入 validators.Length(min=3,max=5,message='不能小于3位,不能大于5位') ], render_kw={'class':'my_username'}, #相等于自定义的类,属性 )
password=simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='不能为空'), validators.length(min=6,max=6,message='密码必须为6位'), validators.Regexp(regex='\d+',message='密码必须为数字'), ], render_kw={'class':'my_password'} )
#注册页面认证class RegForm(Form): username=simple.StringField( label='密码', validators=[ validators.DataRequired(message='不能为空'), validators.Length(min=3,max=5,message='') ], render_kw={'class':'my_username'} ) nickname=simple.StringField( label='昵称', validators=[ validators.DataRequired(message='不能为空')], render_kw={'class':'my_nickname'} )
password=simple.PasswordField( label='密码', validators=[ validators.DataRequired(message='不能为空'), validators.Length(min=6,max=6,message='密码必须为6位'), validators.Regexp(regex='\d+',message='密码必须为数字') ], render_kw={'class':'my_password'} )
repassword=simple.PasswordField( label='确认密码', validators=[ #EqualTo 等于 与字段匹配 validators.EqualTo(fieldname='password',message='两次不一致') ], render_kw={'class':'my_password'} )
email=simple.StringField( label='邮箱', validators=[ validators.Email(message='格式不正确') ], render_kw={'class':'myemail'} )
#上面用simple 下面用core gender=core.RadioField( label='性别', coerce=int, #类型为int choices=( (1,'女'), (2,'男') ), default=1 #默认为1 )
hobby=core.SelectMultipleField( label='爱好', coerce=int, choices=( (1,'小姐姐'), (2,'小萝莉'), (3,'小哥哥'), (4,'正太'), (5,'小阿姨'), (6,'小大叔'), ), default=(1,2,5) )
submit=simple.SubmitField( label='提交' )
#登录验证class LoginClass(views.MethodView): def get(self): froms=LoginForm() return render_template('login.html',froms=froms)
def post(self): froms=LoginForm(request.form) if froms.validate(): #django 是is_valid() return '110' else: return render_template('login.html',froms=froms)
app.add_url_rule('/login',view_func=LoginClass.as_view('login'))
#注册
class RegClass(views.MethodView):
def get(self): froms=RegForm() return render_template('reg.html',froms=froms)
def post(self): froms=RegForm(request.form) if froms.validate(): return '120' else: return render_template('reg.html',froms=froms)app.add_url_rule('/reg',view_func=RegClass.as_view('reg'))
if __name__ == '__main__': app.run(debug=True)
flask 之cbv ,flash闪现,Flask_Session,WTForms - MoudelForm的更多相关文章
- flask的CBV,flash,Flask-Session,及WTForms-MoudelForm
1,CBV: from flask import vews class LoginView(views.MethodView): def get(self): return "雪雪其实也很好 ...
- flask模板应用-消息闪现(flash())
消息闪现 flask提供了一个非常有用的flash()函数,它可以用来“闪现”需要提示给用户的消息,比如当用户登录成功后显示“欢迎回来!”.在视图函数调用flash()函数,传入消息内容,flash( ...
- Flask Flash闪现
Flash介绍以及工作方式 flash中添加消息 取出flash中的消息 Flash介绍以及工作方式 - 介绍: flash :闪现 一个好的应用和用户界面都需要良好的反馈. 如果用户得不到足够的反馈 ...
- flask flask_session,WTForms
一.Flask_session 本质上,就是是cookie 下的session存储在redis中,方便快速取得session from flask import Flask,session from ...
- 第十一篇 CBV和闪现
前几篇写的都是FBV 现在可以了解一下CBV CBV 其实就是把请求方式都写到一个类中 学过django的一眼应该就明白了 from flask import Flask, render_templa ...
- Flask - 请求响应 | session | 闪现 | 请求扩展 | 中间件
请求响应 flask的请求信息都在request里 flask的响应方式有四剑客,也可以自定义响应 请求相关信息 # request.method 提交的方法 # request.args get请求 ...
- python Flask框架CBV视图
1.演示之前需要先写一个装饰器 # 装饰器 def wrapper(func): def inner(*args, **kwargs): print('操作函数%s之前' % func.__name_ ...
- flask之CBV模式
flask_cbv.py ''' flask中的CBV模式: (1)导入views模块: from flask import views (2)定义类,继承views.MethodView类: cla ...
- Flask中的flash
一.简单的使用 - 必须要设置秘钥因为flash是基于session -设置:flash('aaa') -取值:get_flashed_message() #从源码我们可以看出get_flashed_ ...
随机推荐
- 昨天办了一张地铁卡,我想到一个app
如果成都开通 扫 二维码 做地铁.地铁是距离收费的,如果我们有一个平台,搜集所有用户的 入站 和出站二维码,然后重新分配,那么每个用户就只用 出 2块钱每次的最低消费了.哈哈............. ...
- Ansible 常用模块之ping(四)
一.ping 模块 1.用途: 测试主机之间的连通性: 2.关键字:ping 3.参数:无 4.用法: ansible all -m ping 命令简单,测试所有服务器是否与控制机网络连通:
- Linux 下Tomcat单机多应用
修改/etc/profile 下,增加如下两个tomcat的配置.apache-tomcat-8.0.50为第一个tomcat, apache-tomcat-8.0.50_2为第二个tomcat ex ...
- slice.indices()/collections.Counter笔记
关于slice.indices() >>> help(slice) Help on class slice in module builtins: class slice(objec ...
- Hiero中修改BinView中binitem对象名字的方法
之前博客提到了scan for more version这样一个功能,该功能会放宽查询条件,这就会导致BinItem的名称与activeVersion的名称不符.这篇博客提供了一个方法去统一名称. 该 ...
- JavaScrip之BOM、DOM
BOM 浏览器对象模型(BrowserObjectModel),可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关的动作. 使 Jav ...
- Set ARITHABORT Option设置为ON
MSDN注释中提到,应该总是将Set ARITHABORT Option设置为ON,原因有四: 1,如果SSMS和application client的设置不同,那么会导致application cl ...
- mysql++ 3.2.3 源码安装
https://tangentsoft.com/mysqlpp/home 下载 wget https://tangentsoft.com/mysqlpp/releases/mysql++-3.2.3. ...
- JAVA面向对象编程之购物车界面的设计与功能的实现
1.小组成员及分工 小组成员 负责工作 兰泽祥 负责总体界面.Git代码库 吴修恩 负责MVC模式.类名包名的规范化 2.Git 仓库地址 仓库地址:https://gitee.com/lanzexi ...
- vue element-ui 用checkebox 来模拟选值 1/0
https://jsfiddle.net/57dz2m3s/12/ 复制 粘贴 打开url就可以看到效果