flask中的模版笔记

1 篇文章 0 订阅
1 篇文章 0 订阅
这篇博客详细介绍了在Flask中如何使用模板,包括模版调用、变量过滤器、控制结构、链接操作以及表单类的使用。特别提到了如何应用Bootstrap样式,并利用Flask-SQLAlchemy进行数据库交互。
摘要由CSDN通过智能技术生成

模版调用

from flask import render_template
@app.route('/')
def index():
    return render_template('index.html')

变量过滤器

{{ namd|capitalize}}
  • safe 渲染值时不转移
  • capitalize 把值的首字母转换成大写,其它字幕转换成小写
  • lower 把值转换成小写形式
  • upper 把值转换成大写形式
  • title 把值中每个单词的首字母都转换成大写
  • trim 把值的首位空格去掉
  • striptags 渲染之前把值中所有的HTML标签都删掉

控制结构

{% if user %}
    xxxxx
{% else %}
    xxxxxx
{% endif %}
{% for one in list %}
    xxxxxxxxxxxx
{% endfor %}
{% macro function(args) %} #宏
    xxxxxxx
{% endmacro %}
xxxxxxxxxx
{{function(args)}}

引用(导入)

{% import 'temp.html' as temp %} #代码import
{% include 'common.html' %} #模版插入
{% extends 'base.html' %} #模版继承
使用bootstrap
from flask.ext.bootstrap import Bootstrap
@app.route('/user/<name>')
def user(name):
    return render_template('user.html', name=name)
{% extends 'bootstrap/base.html' %}
{% block xxx %} #block标签替换
    #{{ super() }} #当模版中block xxx中非空,就需要super()来获取原来的内容
{% endblock %}

定义错误页面

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

链接 url_for()

用视图函数的名字作为关键字:

url_for('index')  # /
url_for('user', name='john', _external=True)  #http://localhost:5000/user/john
url_for('index', page=2)  # /?page=2

表单类

from flask.ext.wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('What is your name?', validators=[Required()]
    submit = SubmitField('Submit')

WTForms支持的HTML标准字段

StringField #文本字段
TextAreaField #多行文本字段
PasswordField #密码文本字段
HiddenField #隐藏文本字段
DateField #文本字段,值为datetime.date格式
DateTimeField #文本字段,值为datetime.datetime格式
IntegerField #文本字段,值为整数
DecimalField #文本字段,值为decimal.Decimal
FloatField #文本字段,值为浮点数
BooleanField #复选框,值为True和False
RadioField #一组单选框
SelectField #下拉列表
SelectMultipleField #下拉列表,可选择多个值
FileField #文件上传字段
SubmitField #表单提交按钮
FormField #把表单作为字段嵌如另一个表达那
FieldList #一组指定类型的字段

WTForms验证函数

Email #验证电子邮件地址
EqualTo #比较两个字段的值;常用于要求输入两次密码进行确认的情况
IPAddress #验证IPv4网络地址
Length #验证输入字符的长度
NumberRange #验证输入的值在数字范围内
Optional #无输入值时跳过其他验证函数
Required 确保字段中有数据
Regexp #使用正则表达式验证输入值
URL #验证URL
AnyOf #确保输入值在可选值列表中
NomeOf #确保输入值不在可选值列表中

Bootstrap渲染Flask-WTF表单

{% import 'bootstrap/wtf.html' as wtf %}
{{ wtf.quick_form(form) }}

使用Flask-SQLAlchemy

from flask.ext.sqlalchemy import SQLAlchemy

basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db = SQLAlchemy(app)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值