IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python-flask表单- -> 正文阅读

[Python知识库]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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>进行付款</title>
</head>
<body>
<form action = "" method="post">
    {{ form.payment_no.label }}
    {{ form.payment_no }}
    <br>
    {{ form.bank_flow_no.label }}
    {{ form.bank_flow_no }}
    <br>
    {{ form.receipt_code.label }}
    {{ form.receipt_code }}
    <br>
    {{ form.amt_debit.label }}
    {{ form.amt_debit }}
    <br>
    {{ form.tag.label }}
    {{ form.tag }}
    <br>
    {{ form.failure_reason.label }}
    <br>
    {{ form.failure_reason }}
    <br>
    {{ form.submit }}
    <br>
    此处写一些备注

</form>
</body>
</html>

(3)运行查看,查看效果
启动服务后,访问链接:
在这里插入图片描述
运行一个付款成功:
在这里插入图片描述
在这里插入图片描述
运行一个付款退票:
在这里插入图片描述
在这里插入图片描述
二、实现中遇到的问题
(1)表单设计,查找相应的方法,及校验有效性
在这里插入图片描述
(2)tag的判断逻辑类型,开始用数字1报错,后改为“1”通过
在这里插入图片描述
(3)jinja2中{{}}的使用
jinja2的基本语法:
{{}}:用来装载表达式,比如变量、运算表达式、比较表达式
在这里插入图片描述

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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:14:27  更:2022-05-05 11:18:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:55:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码