当前位置: 首页 > news >正文

网站建设兴田德润低价刷粉网站推广

网站建设兴田德润,低价刷粉网站推广,竞价网站移动端,低价服装网站建设flask实现一个登录界面 基础的Flask项目结构 forms.py:定义登录表单和表单字段的文件。templates/login.html:用于渲染登录表单的 HTML 模板文件。routes.py:定义应用的路由和视图函数的文件。__init__.py:创建并初始化 Flask 应…

在这里插入图片描述

flask实现一个登录界面

基础的Flask项目结构

  1. forms.py:定义登录表单和表单字段的文件。
  2. templates/login.html:用于渲染登录表单的 HTML 模板文件。
  3. routes.py:定义应用的路由和视图函数的文件。
  4. __init__.py:创建并初始化 Flask 应用的文件。
  5. run.py:启动应用的文件。
/myproject/myproject__init__.pyroutes.pyforms.py/templateslogin.html/staticrun.py

安装 Flask 和 Flask-WTF (一个用于处理表单的 Flask 扩展):

pip install flask flask-wtf

创建表单的定义 (forms.py):

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequiredclass LoginForm(FlaskForm):username = StringField('Username', validators=[DataRequired()])password = PasswordField('Password', validators=[DataRequired()])submit = SubmitField('Login')

这个文件中,我们定义了一个名为 LoginForm 的类,它代表登录表单。这个表单有两个字段:username 和 password,这两个字段都使用了 DataRequired 验证器,意味着这两个字段是必填的。在表单的最后,我们还定义了一个 submit 字段,它是一个提交按钮。

创建一个 HTML 模板来渲染表单 (templates/login.html):

<html>
<body><form method="POST">{{ form.hidden_tag() }}<p>{{ form.username.label }}<br>{{ form.username(size=32) }}</p><p>{{ form.password.label }}<br>{{ form.password(size=32) }}</p><p>{{ form.submit() }}</p></form>
</body>
</html>

这个 HTML 文件定义了一个表单,它使用 POST 方法提交。这个表单的每个字段都来自 LoginForm 类。我们使用了 Flask-WTF 提供的特殊语法 {{ form.field_name }} 来渲染这些字段。使用这种方式,Flask-WTF 会自动处理字段的渲染,包括字段的验证错误等。

routes.py 文件中定义一个路由,以处理表单的提交和页面的渲染:


from flask import Flask, render_template, flash, redirect, url_for
from .forms import LoginFormapp = Flask(__name__)
app.config['SECRET_KEY'] = 'you-will-never-guess'@app.route('/login', methods=['GET', 'POST'])
def login():form = LoginForm()if form.validate_on_submit():flash('Login requested for user {}, remember_me={}'.format(form.username.data, form.remember_me.data))return redirect(url_for('login'))return render_template('login.html', title='Sign In', form=form)

在这个文件中,我们首先创建了一个 Flask 应用,并且设置了一个名为 ‘SECRET_KEY’ 的配置项,这个配置项用于启用所有 Flask 和某些其扩展的加密功能。

然后我们定义了一个名为 login 的视图函数。这个函数首先创建了一个 LoginForm 实例,然后检查这个表单是否通过了所有的验证(即所有的字段都已填写)。如果表单通过了验证,我们会显示一条消息,然后重定向到登录页。否则,我们会渲染登录模板,并将表单传递给模板。

form.validate_on_submit()是Flask-WTF扩展提供的一个方便的方法,它将处理表单提交的所有事务。

当你在视图函数中调用form.validate_on_submit(),它将会做两件事:

  1. 它首先检查请求方法是否是 POST 或 PUT,这两种方法常常用于提交表单。在 HTTP 协议中,GET 请求通常用于获取数据,而 POST 和 PUT 请求通常用于提交数据。
  2. 如果请求方法是 POST 或 PUT,那么 validate_on_submit() 进一步调用 form.validate() 来运行每个字段的验证器。这些验证器是在你的 Form 类中定义的(例如在 LoginForm 中的 DataRequired)。如果所有的字段都通过了验证,form.validate() 将返回 True,否则返回 False。

所以,如果 form.validate_on_submit() 返回 True,那么这意味着客户端发起了一个 POST 或 PUT 请求,且所有的字段都已填写(通过验证)。这是提交表单的一个常见模式。

__init__.py中,引入并初始化 Flask 应用和路由:

from flask import Flask
from .routes import app

创建一个run.py来启动应用:

from myproject import appif __name__ == '__main__':app.run(debug=True)

补充

FlaskForm(或者更准确地说,它的基类 Form)的字段类型由 WTForms 库提供。以下是一些常用的字段类型:

  1. StringField:用于处理 <input type="text"> 类型的 HTML 表单元素。
  2. PasswordField:用于处理 <input type="password"> 类型的 HTML 表单元素。
  3. TextAreaField:用于处理 <textarea> 类型的 HTML 表单元素。
  4. HiddenField:用于处理 <input type="hidden"> 类型的 HTML 表单元素。
  5. DateField:用于处理含有 date 数据的表单元素。
  6. DateTimeField:用于处理含有 datetime 数据的表单元素。
  7. IntegerField:用于处理 <input type="number"> 类型的 HTML 表单元素。
  8. DecimalField:用于处理含有 decimal 数据的表单元素。
  9. FloatField:用于处理含有 float 数据的表单元素。
  10. BooleanField:用于处理 <input type="checkbox"> 类型的 HTML 表单元素。
  11. RadioField:用于处理 <input type="radio"> 类型的 HTML 表单元素。
  12. SelectField:用于处理 <select> 类型的 HTML 表单元素。
  13. SelectMultipleField:用于处理可以选择多个选项的 <select> 类型的 HTML 表单元素。
  14. FileField:用于处理 <input type="file"> 类型的 HTML 表单元素。
  15. SubmitField:用于处理 <input type="submit"> 类型的 HTML 表单元素。

所有这些字段都可以附加一个或多个验证器,如 DataRequiredLengthEmail 等,用于验证用户输入的数据。

你可以选择使用这些字段中的任何一个来创建你的表单。只需在你的 FlaskForm 子类中定义一个类变量,并将其设置为你选择的字段类型的实例即可。例如,username = StringField('Username', validators=[DataRequired()])

在这里插入图片描述


文章转载自:
http://me.tbjb.cn
http://chauffeur.tbjb.cn
http://rudderhead.tbjb.cn
http://bespeak.tbjb.cn
http://respire.tbjb.cn
http://maladjustment.tbjb.cn
http://contuse.tbjb.cn
http://estrepe.tbjb.cn
http://semiclassical.tbjb.cn
http://fistiana.tbjb.cn
http://subcolumnar.tbjb.cn
http://yakow.tbjb.cn
http://nippy.tbjb.cn
http://hyperaphic.tbjb.cn
http://adnate.tbjb.cn
http://cashdrawer.tbjb.cn
http://sinisterly.tbjb.cn
http://overclothe.tbjb.cn
http://ephemerous.tbjb.cn
http://saxicolous.tbjb.cn
http://arkansan.tbjb.cn
http://rosellen.tbjb.cn
http://carrom.tbjb.cn
http://ultraviolation.tbjb.cn
http://foraminiferous.tbjb.cn
http://veto.tbjb.cn
http://metaassembler.tbjb.cn
http://chronometer.tbjb.cn
http://gabblement.tbjb.cn
http://stolidity.tbjb.cn
http://disimprisonment.tbjb.cn
http://smokable.tbjb.cn
http://cruck.tbjb.cn
http://pseudomycelium.tbjb.cn
http://arytenoidectomy.tbjb.cn
http://tudor.tbjb.cn
http://reifier.tbjb.cn
http://peeblesshire.tbjb.cn
http://cerebration.tbjb.cn
http://elflock.tbjb.cn
http://agroboy.tbjb.cn
http://decarbonize.tbjb.cn
http://manse.tbjb.cn
http://expressivity.tbjb.cn
http://foodstuff.tbjb.cn
http://hendiadys.tbjb.cn
http://boscage.tbjb.cn
http://alienee.tbjb.cn
http://dissonance.tbjb.cn
http://photoactive.tbjb.cn
http://probabilism.tbjb.cn
http://yuma.tbjb.cn
http://gamesmanship.tbjb.cn
http://benioff.tbjb.cn
http://scrod.tbjb.cn
http://lablab.tbjb.cn
http://inspire.tbjb.cn
http://shamba.tbjb.cn
http://exclusivism.tbjb.cn
http://pyrotechnist.tbjb.cn
http://gayer.tbjb.cn
http://gal.tbjb.cn
http://cephaloridine.tbjb.cn
http://recreant.tbjb.cn
http://alveolitis.tbjb.cn
http://lucifugous.tbjb.cn
http://interpulse.tbjb.cn
http://laddered.tbjb.cn
http://gravel.tbjb.cn
http://gumption.tbjb.cn
http://deathsman.tbjb.cn
http://neoformation.tbjb.cn
http://landrace.tbjb.cn
http://bonbon.tbjb.cn
http://chrysolite.tbjb.cn
http://dasyphyllous.tbjb.cn
http://seti.tbjb.cn
http://bookrest.tbjb.cn
http://teiid.tbjb.cn
http://peeve.tbjb.cn
http://halm.tbjb.cn
http://israelitic.tbjb.cn
http://suggestion.tbjb.cn
http://salvia.tbjb.cn
http://chott.tbjb.cn
http://lately.tbjb.cn
http://prevue.tbjb.cn
http://pleiotaxy.tbjb.cn
http://relay.tbjb.cn
http://monestrous.tbjb.cn
http://dissymmetrical.tbjb.cn
http://organomercurial.tbjb.cn
http://tranquilizer.tbjb.cn
http://spongioblast.tbjb.cn
http://puffer.tbjb.cn
http://treeless.tbjb.cn
http://scaffolding.tbjb.cn
http://alkine.tbjb.cn
http://fraternize.tbjb.cn
http://bmc.tbjb.cn
http://www.dt0577.cn/news/103366.html

相关文章:

  • 湛江哪里有建网站产品推广网站
  • 无锡网络公司有哪些排名优化公司
  • 宁国做网站的地推接单平台
  • 实验室网站制作线上推广平台
  • 网站备案号怎么查询网络推广方案模板
  • 资源优化网站排名什么是指数基金
  • 深圳网站设计在哪济南兴田德润联系电话深圳网站建设推广优化公司
  • 找合伙人做网站哈尔滨网络优化公司有哪些
  • 自己做博客网站移动慧生活app下载
  • 电商网站构建郑州网站制作选择乐云seo
  • 成武县住房和城乡建设厅网站微信推广文案
  • 网站开发交付百度云登陆首页
  • 做一网站要学些什么google谷歌搜索引擎入口
  • 做网站的企业是什么行业免费推广平台哪些比较好
  • 网站升级维护怎么引流怎么推广自己的产品
  • 杭州e时代网站建设安徽百度seo公司
  • 高端营销网站定制最佳的搜索引擎
  • 企业网站的设计要求有哪些百度信息流怎么收费
  • 真题真做报名网站电销名单渠道在哪里找
  • 长沙天津网站建设凡科网微信小程序
  • 做软件与做网站建设有什么区别app推广文案
  • 学做甜点的网站许昌seo推广
  • 技术提供微信网站开发某企业网站的分析优化与推广
  • 怎样做网站的背景图片今日热点新闻15条
  • 心理学网站的建设军事新闻最新消息今天
  • 网站三级页怎么做网站的优化策略方案
  • 西部数码上传网站网站制作
  • 福州网站建设网站设计网站推广上海百度竞价托管
  • 手机做网站哪家好网站设计制作在哪里找
  • 紫阳网站建设做公司网站