ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

19、处理表单

2022-06-04 02:00:13  阅读:138  来源: 互联网

标签:__ name form 19 app 表单 处理 import


安装 Flask-WTF

# 在虚拟环境下安装
pip install flask-wtf

定义登录页面模板 login.html

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>Flask_WTF</title>
		<style type="text/css">
			.div1 {
				height: 180px;
				width: 380px;
				border: 1px solid #8a8989;
				margin: 0 auto;
			}
			.input {
				display: block;
				width: 350px;
				height: 40px;
				margin: 10px auto;
			}
			.button {
				background: #2066c5;
				color: white;
				font-size: 18px;
				font-weight: bold;
				height: 50px;
				border-radius: 4px;
			}
		</style>
	</head>
	<body>
		<div class="div1">
			<form action="login" method="post">
				{# 开启CSRF保护 #}
				{{form.hidden_tag()}}

        {# 用户名输入框 #}
        {{form.name(size=16,id='name',class='input' )}}

        {# 密码输入框 #}
        {{form.password(size=16,id='password',class='input')}}

        <!-- 提交按钮 -->
				<input type="submit" value="登录" class="input button" />
			</form>
		</div>
	</body>
</html>

定义登录保护文件 config.py

#coding:utf8
import os
SECRET_KEY = os.urandom(24)  # 生成随机密钥
CSRF_ENABLED = True  # 开启CSRF保护

定义表单类文件 forms.py

# -*- coding:utf-8 -*-
# 引入Form基类
from flask_wtf import FlaskForm

# 引入Form元素父类
from wtforms import StringField, PasswordField

# 引入Form验证父类
from wtforms.validators import DataRequired, Length


# 登录表单类,继承自FlaskForm类
class BaseLogin(FlaskForm):
    # 用户名
    name = StringField(
        "name",
        validators=[
            DataRequired(),  # 必须填写
            Length(6, 16),   # 限定长度为 6 - 16
        ],
        render_kw={"placeholder": "输入用户名"},  # 提示输入信息
    )
    # 密码
    password = PasswordField(
        "password",
        validators=[
            DataRequired(),
            Length(6, 16),
        ],
        render_kw={"placeholder": "输入密码"},
    )

定义主程序文件

from flask import Flask
from flask import render_template

# 导入自定义的BaseLogin验证表单类
from forms import BaseLogin
# 导入表单保护
import config

# 实例化及配置
app = Flask(__name__)
app.config.from_object(config)


# 定义处理函数和路由规则,接收GET和POST请求
@app.route("/login", methods=("POST", "GET"))
def baselogin():
    # 实例化表单对象
    form = BaseLogin()
    # 判断数据是否符合要求
    if form.validate_on_submit():
        return "表单数据提交成功!"
    else:
        # 否则继续登录验证
        return render_template("login.html", form=form)


@app.route("/")
def hello_world():
    return "Hello World!"


if __name__ == "__main__":
    app.run(debug=True)

参考资料

https://weread.qq.com/web/reader/0a932660718ac6bc0a9702e

标签:__,name,form,19,app,表单,处理,import
来源: https://www.cnblogs.com/tiansz/p/16341152.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有