flask表单标签
环境:python2.7+flask+flask_wtf
内容:flask的部分常用表单标签
test.py
# -*- coding: utf-8 -*-
# flask web_form 表单控件
import flask
from flask_wtf import FlaskForm
from wtforms import *
from wtforms.fields import (StringField, PasswordField, DateField, BooleanField,
SelectField, SelectMultipleField, TextAreaField,
RadioField, IntegerField, DecimalField, SubmitField)
from wtforms.validators import DataRequired, Length, Email, EqualTo, NumberRange
from flask_wtf.file import FileField, FileRequired, FileAllowed
from flask import Flask, render_template, redirect
app = Flask(__name__)
#from flask_uploads import UploadSet, configure_uploads, IMAGES, patch_request_class
import os
from os import path
d = path.dirname(__file__)
###保护字段 app.config['SECRET_KEY'] = 'a random string'
'''
app.config['UPLOADED_PHOTOS_DEST'] = os.getcwd()
photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
patch_request_class(app)
'''
###定义表单
class NewsForm(FlaskForm):
# Text Field类型,文本输入框,必填,用户名长度为4到25之间
username = StringField('Username', validators=[Length(min=4, max=25)])
# Text Field类型,文本输入框,Email格式
email = StringField('Email Address', validators=[Email()])
# Text Field类型,密码输入框,必填,必须同confirm字段一致
password = PasswordField('Password', [
DataRequired(),
EqualTo('confirm', message='Passwords must match')
])
# Text Field类型,密码输入框
confirm = PasswordField('Repeat Password')
id = HiddenField('id', default='')
image = FileField(validators=[
FileRequired('no files'),
FileAllowed(['jpg', 'png'], 'Images only!')
])
# Text Field类型,文本输入框,必须输入整型数值,范围在16到70之间
age = IntegerField('Age', validators=[NumberRange(min=16, max=70)])
# Text Field类型,文本输入框,必须输入数值,显示时保留一位小数
height = DecimalField('Height (Centimeter)', places=1)
# Text Field类型,文本输入框,必须输入是"年-月-日"格式的日期
birthday = DateField('Birthday', format='%Y-%m-%d')
# Radio Box类型,单选框,choices里的内容会在ul标签里,里面每个项是(值,显示名)对
gender = RadioField('Gender', choices=[('m', 'Male'), ('f', 'Female')],validators=[DataRequired()])
# Select类型,下拉单选框,choices里的内容会在Option里,里面每个项是(值,显示名)对
job = SelectField('Job', choices=[
('teacher', 'Teacher'),
('doctor', 'Doctor'),
('engineer', 'Engineer'),
('lawyer', 'Lawyer')
]) # Select类型,多选框,choices里的内容会在Option里,里面每个项是(值,显示名)对
hobby = SelectMultipleField('Hobby', choices=[
('swim', 'Swimming'),
('skate', 'Skating'),
('hike', 'Hiking')
])
# Text Area类型,段落输入框
description = TextAreaField('Introduction of yourself')
# Checkbox类型,加上default='checked'即默认是选上的
accept_terms = BooleanField('I accept the Terms of Use', default='checked',
validators=[DataRequired()])
# Submit按钮
submit = SubmitField('Register')
###控制器
@app.route('/test/news_form', methods=['GET','POST'])
def NewsFormViews():
form = NewsForm()
if flask.request.method == "GET":
return render_template('news_form.html',form=form)
else:
#print form.image.data
if form.validate_on_submit():
if form.id.data:
print form.id.data
if form.image.data:
filename = form.image.data.filename
form.image.data.save(path.join(d,filename))
return redirect('/test/news_form')
else:
print form.errors
###把错误信息返回到页面
return render_template('news_form.html',form=form,error=form.errors) if __name__ == '__main__':
app.run(host='127.0.0.1',port='', debug=False)
flask表单标签的更多相关文章
- flask表单,orm,csrf
flask表单是flask中最基本的功能. 它是负责HTML页面中数据采集的部分,它由三部分组成:表单标签,表单域,表单按钮组成,通过表单用户输入的数据提交给服务器. flask表单封装了WTForm ...
- SpringMVC 表单标签 & 处理静态资源
使用 Spring 的表单标签 通过 SpringMVC 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显. form 标签 一般情况下,通过 ...
- SpringMVC学习系列(11) 之 表单标签
本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. 一.首先我们先做一个简单了例子来对Spring MV ...
- (转载)SPRINGMVC表单标签简介
SpringMVC表单标签简介 在使用SpringMVC的时候我们可以使用Spring封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容.下面将对这些标签一一介绍. 在正式介绍Spri ...
- 第五节:表单标签的用法——value绑定和修饰符
1.表单标签的用法--value绑定和修饰符 value绑定的写法:v-bind:value 或者简写 :value 修饰符: lazy , Number , trim . 用法如: v-model ...
- 第四节:Vue表单标签和组件的基本用法,父子组件间的通信
vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset=&q ...
- SpringMVC 表单标签
引入标签库 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" ...
- SpringMVC表单标签简介
在使用SpringMVC的时候我们可以使用Spring封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容.下面将对这些标签一一介绍. 在正式介绍SpringMVC的表单标签之前,我们需 ...
- struts2:非表单标签
非表单标签主要用于输出在Action中封装的信息,这在实际运用中是很常见的. 1. actionerror标签 <s:actionerror>标签主要用于输出错误信息到客户端,该标签将Ac ...
随机推荐
- python之路---12 生成器 推导式
三十.函数进阶 1.生成器 函数中有yield 的就是生成器函数(替代了return) 本质就是迭代器 一个一个的创建对象 节省内存 ①创建生成器 最后以yield结束 ...
- Git中清除远程仓库HTTPS认证信息的方法
Git远程仓库同步时用户认证有两种方式:HTTPS.SSH,对应的Git仓库上有两个不同的链接地址. https方式使用账号和密码授权,简单易用,便于进行权限细分管理,而且防火墙一般会打开 http ...
- 使用 Travis 进行持续集成
廖雪峰教程:https://www.liaoxuefeng.com/article/0014631488240837e3633d3d180476cb684ba7c10fda6f6000
- 事件委托(event delegation) 或叫 事件代理
比较好的介绍文章: 关于事件委托的整理 ,另附bind,live,delegate,on区别:https://www.cnblogs.com/MagicZhao123/p/5980957.html j ...
- antd、react-router-dom v4 解决菜单和地址同步问题
点击不同的菜单,右边内容做相应的变化. 不过,对于后退操作和刷新页面操作无效,左边菜单无法保持选中项高亮. 解决思路如下: Menu 用 seletedKeys 来决定哪项被选中.需要判断当前选前的路 ...
- JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)
JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试.我们的 API 返回结果为 JSON 数据格式.JSON 简介,JSON 教程. JSON 已经成为数据交换格式 ...
- SmartGit 授权Non-Commerical
Window: %APPDATA%/syntevo/SmartGit/ 搜索settings.xml, 并且移除这个文件 重启
- php统计中英文混合的文章字数
function ccStrLen($str) #计算中英文混合字符串的长度 { $ccLen=0; $ascLen=strlen($str); $ind=0; $hasCC=ereg("[ ...
- Vivado约束文件(XDC)的探究(2)
Vivado约束文件(XDC)的探究(2)
- IDEA运行tomcat8.5.35源代码
前提环境,安装和配置好java1.8+环境,maven,IDEA 1.下载Tomcat源代码:https://tomcat.apache.org/download-80.cgi#8.5.35 2.创建 ...