栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-flask表单-

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-flask表单-

本文仍以银行付款为例进行实践flask表单的实现
一、骨干的实现与验证
(1)定义表单模型

from flask import Flask,render_template,request
#类型
from wtforms import StringField,SelectField,SubmitField
from flask_wtf import FlaskForm
#参数的校验
from wtforms.validators import DataRequired

app = Flask(__name__)

app.config["SECRET_KEY"] = "good"

#定义表单模型类
class Paystate(FlaskForm):
    payment_no = StringField(label="订单号",validators=[DataRequired("不能为空")])
    bank_flow_no = StringField(label="流水号", validators=[DataRequired("不能为空")])
    receipt_code = StringField(label="回单号", validators=[DataRequired("不能为空")])
    amt_debit = StringField(label="金额", validators=[DataRequired("不能为空")])
    failure_reason = StringField(label="失败/退票原因")
    tag = SelectField(label= "动作",validators=[DataRequired("请选择要做的操作")],render_kw={"class":"form-control"},choices=[(1,"付款成功"),(2,"付款退票")],default= 1,coerce = int)
    submit =SubmitField(label="提交")

@app.route(rule= "/",methods= ["GET","POST"])
def paystate():
    #创建表单对象
    form = Paystate()
    if request.method == "GET":
        return render_template("index2.html",form=form)
    if request.method == "POST":
        if  request.form.get("tag") == "1":
            print("调用成功的场景")
            return render_template("index2.html", form=form)
        if  request.form.get("tag") == "2":
            print("调用退票的场景")
            return render_template("index2.html", form=form)
if __name__ =="__main__":
    app.run()

(2)编写html




    
    进行付款


{{ form.payment_no.label }} {{ form.payment_no }}
{{ form.bank_flow_no.label }} {{ form.bank_flow_no }}
{{ form.receipt_code.label }} {{ form.receipt_code }}
{{ form.amt_debit.label }} {{ form.amt_debit }}
{{ form.tag.label }} {{ form.tag }}
{{ form.failure_reason.label }}
{{ form.failure_reason }}
{{ form.submit }}
此处写一些备注

(3)运行查看,查看效果
启动服务后,访问链接:

运行一个付款成功:


运行一个付款退票:


二、实现中遇到的问题
(1)表单设计,查找相应的方法,及校验有效性

(2)tag的判断逻辑类型,开始用数字1报错,后改为“1”通过

(3)jinja2中{{}}的使用
jinja2的基本语法:
{{}}:用来装载表达式,比如变量、运算表达式、比较表达式

{{% %}}:用来装载控制语句。比如:if控制语句、for循环控制语句
{{##}}:用来装载注释,模版文件被渲染后,注释不会包含在最终生成的文件中

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号