flask关于前端与后端使用WTForm交互问题以及其他问题杂笔(python 3)

本文探讨了在Flask应用中如何使用WTForm进行前端与后端的数据交互,并关注了账户安全措施和会话管理。作者分享了登录验证流程,以及不同场景下(如表单提交与简单跳转)的代码实现和最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

flask关于前端与后端使用WTForm交互问题以及其他问题杂笔(python 3)

后端–>前端:

1. 引用

from flask_wtf import Form
from wtforms import StringField,PasswordField

使用的类型还有一些,有更多需要可以再搜索下,简单使用StringField基本够用
2.定义form函数

class LogInForm(Form):
    user=StringField('用户名')
    password=PasswordField('密码')
    message=TextField('显示信息')

3.传递数据

def log_in():
    form=LogInForm(request.form)
    #账户信息不应该是后端传递给前端的,一般是查询,
    #这里只是便于理解如何给form类型赋值,取值。
    form.user.data='root'
    form.password='123456'

(账号登录后端处理前端返回的数据需要连接数据库,贴出代码也无法使用,等我做完后会上传全部代码,希望各位大佬再指点。)

前端–>后端

以下三项是html文件代码
1,form包含

<form action="" method="post" name="view_bulletin" enctype="multipart/form-data">
#内容
</form>

2,传递信息需要包含以下代码段,如果只是点击按钮跳转,不提交任何信息可以不加

{{form.hidden_tag()}}

3,前端与后端连接的数据字段

        <div>
            欢迎登录!
            {{form.message.data}}
        </div>
        <div>
            {{form.user}}
        </div>
        <div>
            {{form.password}}

账号登录最简单html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>教务系统登录</title>
</head>
<body>
    <form action="" method="post" name="view_bulletin" enctype="multipart/form-data">
    {{form.hidden_tag()}}
        <div>
            欢迎登录!
            {{form.message.data}}
        </div>
        <div>
            {{form.user}}
        </div>
        <div>
            {{form.password}}
        </div>
        <input type="submit" value="登录">

    </form>
</body>
</html

使用WTForm无法处理全部信息,适合处理数据块,一些非常简单的信息没必要使用,可以直接使用上下文,简单。

写项目遇到的比较烦人的问题:

  1. 为了账户安全,什么类型账户处理什么类型数据,防止越权处理,使用会话上下文处理
    引用
from flask import session
app.secret_key='SET_ME_BEFORE_USE_SESSION'

赋值,取值

#赋值
session['user']='root'
#取值
root=session.get('user')
  1. 一个页面只需要点击按钮就可以跳转,前端不传递数据。
    使用直接提交表单,不用WTForm。
    前端代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>admin</title>
</head>
<body>
    <form action="" method="post" name="view_bulletin" enctype="multipart/form-data">
        <input type="submit" value="one" name="1">
        <input type="submit" value="two" name="2">
        <input type="submit" value="three" name="3">
    </form>
</body>
</ht

重点!重点!重点!
input代码段一定要放在form中!!!要不然不会提交!!!

后端代码

def admin():
	if '1' in request.form:
		print('点击的是name为'1'的按钮')

python3的话不要使用:

def admin():
	if request.form.has_key('1'):
		print('点击的是name为'1'的按钮')

python2好像可以使用,python3一定不可以使用!!!

使用flask制作教务系统毕业论文-------杂笔一

有什么问题可以评论交流

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值