基于python flask框架搭建web

flask后台与前端(html)交互的两种方法:

方法1 使用flask-wtf 提供的表单

用常见的登录为例:

// An highlighted block

from flask_wtf import Form

class LoginForm(Form): # 登录表单

ROLE = SelectField('角色', choices=[('s', '管理员'), ('n', '用户')], render_kw={"placeholder": "输入你的用户名", "sty"

"le": "background:url(/static/user."

"png) no-repeat 15px center;t"

"ext-indent: 28px"})

email = StringField('', validators=[Required(), Length(1, 64),

Email()], render_kw={"placeholder": "请输入邮箱",

"style": "background:url(/static/email"

".png) no-repeat 15px center;"

"text-indent: 28px"})

password = PasswordField('', validators=[Required()], render_kw={"placeholder": "输入你的密码", "style": "back"

"ground:url(/static/password.pn"

"g) no-repeat 15px center;text-"

"indent: 28px"})

verify_code = StringField('', validators=[Required()], render_kw={"placeholder": "验证码", "style": "back"

"ground:url(/static/password.pn"

"g) no-repeat 15px center;text-"

"indent: 28px"})

remember_me = BooleanField('记住密码')

submit = SubmitField('登录')

视图函数定义的路由(后台处理程序):

@auth.route('/login', methods=['GET', 'POST']) # 登陆路由

def login():

form = LoginForm()

if form.validate_on_submit():

user = User.query.filter_by(email=form.email.data).first()

if session.get('image').lower()!=form.verify_code.data.lower():

flash('验证码错误')

return render_template('auth/login.html', form=form)

if user is not None and user.verify_password(form.password.data) and (user.ROLE == form.ROLE.data): # user.ROLE == form.ROLE.data:

login_user(user, form.remember_me.data)

return redirect(request.args.get('next') or url_for('main.index'))

flash('邮箱或者密码错误,请检查后再试.')

return render_template('auth/login.html', form=form)

与html模板:

// An highlighted block

{% extends "base.html" %}

{% import "bootstrap/wtf.html" as wtf %}

{% block title %}Flasky - Login{% endblock %}

{% block page_content %}

登录

{{ wtf.quick_form(form) }}

{% endblock %}

结果如图:

方法2 直接使用HTML中的form

html代码如下:Purple_loginform Website Template | Home :: w3layouts

Login Form

python制作系统程序与html交互_python+html语音人物交互_flask后台与前端(html)交互的两种方法...相关推荐

  1. python解压加密zip文件_Python:解压缩前检测一个zip文件否为加密,两种算法。

    前一篇文章介绍了如何用python自动解压缩加密的zip文件, 但是有一个问题,在服务器端脚本在解加密zip文件之前,需要检测其是否是加密文件,若是,则询问密码,结合密码解压缩:如果不是,则则直接解压 ...

  2. python给定一个整数n、判断n是否为素数_python判断所输入的任意一个正整数是否为素数的两种方法...

    素数(也称质数),是指除了1和该数本身,不能被任何正整数整除的正整数.判断一个正整数m是否为素数,只要判断m可否被2~根号m之中的任何一个正整数整除,如果m不能被此范围中任何一个正整数整除,m即为素数 ...

  3. python箭头向下怎么变_实现点击下箭头变上箭头来回切换的两种方法【推荐】

    我所知道的常用的就这两种. 第一种:说明一下我用的是fontawesome字体,首先要去官网下载来用 我用的是bootstrap,所以hidden是自带的,上面的初始状态就是下箭头angle-down ...

  4. python怎么清屏_python实现清屏的方法 Python Shell中清屏一般有两种方法。

    Python Shell 怎样清屏? Python Shell中清屏一般有两种方法. 奈何一个人随着年龄增长,梦想便不复轻盈:他开始用双手掂量生活,更看重果实而非花朵.--叶芝<凯尔特的搏暮&g ...

  5. python字符串成熟编码_python字符串转公式两种方法获取网页编码python版

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  6. python 获取csv的列数_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  7. python字典取值_python 字典中取值的两种方法小结

    python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...

  8. python 修改文件创建时间_python 两种方法修改文件的创建时间、修改时间、访问时间...

    突如其来想知道一下 python 如何修改文件的属性(创建.修改.访问时间),于是就去网上搜集了可行方案,也就有了这篇博客 方案一 from win32file import CreateFile, ...

  9. python安装gdal包_python安装gdal的两种方法

    1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件  链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...

最新文章

  1. 运行shell命令并捕获输出
  2. PyTorch随笔-5
  3. Unity内实现Android APK版本更新
  4. 需求分析阶段各种图的功能
  5. Modbus通信协议之CRC16冗余循环校验函数
  6. X命名空间-标记扩展
  7. 在ASP.NET中如何运行后台任务
  8. java链表的用法_数据结构(java语言描述)链表的使用
  9. 科大讯飞:讯飞输入法日语音交互次数超10亿,将发力5G和AIoT领域
  10. linux虚拟机怎么恢复出厂设置_Vmware安装linux后一些初始化配置
  11. 安信三级分销商城系统源码 带有安装介绍
  12. 【宠物领养系统项目】(附源码)
  13. windows安全中心接口
  14. 实施整体变更控制-管理过程
  15. IT培训分享:11种热门编程语言的主要用途
  16. 输出边长为n的正六边形(c语言)
  17. DSP28335 eCAP 测频
  18. Springboot 通过Jedis-clients 操作Redis
  19. 【吐血整理】数据库的完整性
  20. Unity 视频播放

热门文章

  1. java与java ee_Java EE拦截器
  2. java处理注释_如何处理Java注释
  3. java 单元测试技巧_其他一些单元测试技巧
  4. jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件
  5. junit 5测试异常处理_在JUnit中处理异常的3种方式。 选择哪一个?
  6. 简单的测试可以防止最严重的故障
  7. hash和hashcode_Hibernate事实:等于和HashCode
  8. 将测微仪与Spring Boot 2一起使用
  9. 使用Docker构建Oracle ADF应用程序
  10. spring tiles_Spring MVC 3模板和Apache Tiles