python flask框架 tempates 模版的使用
在py文件同级下 建立templates文件夹,再文件夹中编写html文件
1 向模版中传递参数:
'''
1 向模板传送 参数
'''
@app.route('/')
def index():
name = 'Python'
context = {
'name':'Python',
'age' : 18 ,
'num_list': [1,2,3,4,5,6,7,8,9,10]
}
return render_template('index.html',context=context,name=name )
<body>
hello world! <br>
<p> {{ context }} </p> 姓名:{{ context['name'] }},{{ name }}
<br>
年龄:{{ context['age'] }}
<br>
num_list:{{ context['num_list'] }}
<br>
{% for i in context['num_list'] %}
<p>{{ i }}</p>
{% endfor %} </body>
2 反向路由:
'''
2 反向路由
url_for(视图函数名)) 能够返回视图的相对url
利用redirect( url_for(视图函数) ) 实现重定向
'''
@app.route('/redirect')
def redi():
redir = url_for('index',_external=True)
print(redir)
return redirect(redir)
3 过滤器、自定义过滤器:
'''
3 过滤器: safe 禁用转义 <p>{{ '<em>hello</em>' | safe }}</p>
capitalize 首字母大写 <p>{{ 'hello' | capitalize }}</p>
lower 小写 <p>{{ 'HELLO' | lower }}</p>
upper 大写 <p>{{ 'hello' | upper }}</p>
title 每个单词首字母大写 <p>{{ 'hello' | title }}</p>
trim 去掉首位空格 <p>{{ ' hello world ' | trim }}</p>
reverse 反转字符串 <p>{{ 'olleh' | reverse }}</p>
format 格式化 <p>{{ '%s is %d' | format('name',17) }}</p>
striptags 删掉html标签 <p>{{ '<em>hello</em>' | striptags }}</p> 列表操作:
first 取第一个元素 <p>{{ [1,2,3,4,5,6] | first }}</p>
last 取最后一个元素 <p>{{ [1,2,3,4,5,6] | last }}</p>
length 获取列表长度 <p>{{ [1,2,3,4,5,6] | length }}</p>
sum 列表求和 <p>{{ [1,2,3,4,5,6] | sum }}</p>
sort 列表排序 <p>{{ [6,2,3,1,5,4] | sort }}</p> 语句块过滤:
{% filter upper %}
this is a Flask Jinja2 introduction
{% endfilter %} 自定义过滤器: 两种方式
1 app.add_template_filter(函数名,过滤器名)
2 @app.template_filter(过滤器名)
'''
@app.route('/filter')
def filter():
str = 'abCdeF hello woRld'
li = [1,2,5,4,3,76,65,8,9]
return render_template('filter.html',str=str,li=li)
# 自定义过滤器
def hahah(li):
return str(li)+'hahaha'
app.add_template_filter(hahah,'hahah') @app.template_filter('heihei')
def heihei(li):
return str(li) + 'heihei'
<body>
{{ str }}
<br>
{{ str | upper }}
<br>
{{ str | lower }}
<br>
{{ str | capitalize }}
<br>
{{ str | title }}
<br>
{{ str | reverse }}
<br>
列表操作:
<br>
{{ li }}
<br>
{{ li | length }}
<br>
{{ li | first }}
<br>
{{ li|last }}
<br>
{{ li | sort }} <br>
块过滤:
{% filter upper %}
hello worldQ!
{% endfilter %}
<br> 自定义过滤器:
<br>
{{ li | hahah }}
<br>
{{ li | heihei }} </body>
4 web表单接收参数 wtf表单的使用:
'''
3 web表单 WTForms
'''
# 获取常规表单数据的方法
@app.route('/form',methods=['GET','POST'])
def form():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
print(username , password)
return render_template('form.html') # 利用Flask的 WTF 实现表单
# 配置 csrf_token 的生成项
app.config['SECRET_KEY'] = 'python12'
# 配置表单类
class Form(FlaskForm):
# user字段 text类型input框 校验输入数据
user = StringField(validators=[DataRequired()])
# equalto 检测 与ps2 内容是否一样
ps = PasswordField(validators=[DataRequired(),EqualTo('ps2','err')])
ps2=PasswordField(validators=[DataRequired()])
submit = SubmitField() # 利用Flask的 WTF 实现表单
@app.route('/WTForm',methods=['GET','POST'])
def wtForm():
form = Form() # 拿到一个表单对象
if form.validate_on_submit(): # 能够自动检验 提交的表单是否经过验证 返回True或者False
# 获取表单数据
user = form.user.data
ps = form.ps.data
ps2 = form.ps2.data
print user,ps,ps2
if request.method == "POST":
# flask 操作后端
flash(u'信息发生错误!') print(form.validate_on_submit()) #能够检验 提交是否经过验证,返回True或者False return render_template('form.html',form=form)
<body>
普通表单:
<br>
<form method='post'>
<input type="text" name="username" placeholder='Username'>
<br>
<input type="password" name="password" placeholder='password'>
<br>
<input type="submit">
</form>
<hr>
WTF表单:
<form method="post">
{{ form.csrf_token() }}
{{ form.user.label }}:{{ form.user }}
<br>
{{ form.ps.label }}:{{ form.ps }}
<br>
{{ form.ps2.label }}:{{ form.ps2 }}
<br>
{{ form.submit }}
<br>
{% for info in get_flashed_messages() %}
{{ info }}<br>
{% endfor %}
</form> </body>
4 宏的编写与使用
'''
4 宏 继承 包含 模板的使用
'''
@app.route('/macro')
def macro():
return render_template('macro.html')
<body>
定义 宏 和调用 宏
<br>
{# 定义宏 #}
{% macro input(type,value,size) %}
<input type="{{ type }}" name="" value="{{ value }}" size="{{ size }}">
{% endmacro %} {# 调用宏 #}
{{ input('text','登陆','60') }}
<br>
{{ input('password','注册','20') }} <br> 引用外部宏
<br>
{% import 'macros.html' as f %}
{{ f.fun() }} </body>
外部宏:macros.html 文件:
1 {% macro fun() %}
<input type="text" name="username" placeholde="Username">
<br>
<input type="password" name="password" placeholde="Password">
<br>
<input type="submit">
<br>
{% endmacro %}
python flask框架 tempates 模版的使用的更多相关文章
- Linux ubantu中安装虚拟/使用环境virtualenv以及python flask框架
今天学习了python flask框架的安装过程以及使用案例,感觉网上讲的东西都没有从我们这种初学者的角度去考虑(哈哈),最后还是奉上心得: 1.安装virtualenv $ sudo apt-get ...
- python flask框架学习——开启debug模式
学习自:知了课堂Python Flask框架——全栈开发 1.flask的几种debug模式的方法 # 1.app.run 传参debug=true app.run(debug=True) #2 设置 ...
- python flask框架学习(二)——第一个flask程序
第一个flask程序 学习自:知了课堂Python Flask框架——全栈开发 1.用pycharm新建一个flask项目 2.运行程序 from flask import Flask # 创建一个F ...
- python flask框架学习(一)——准备工作和环境配置与安装
Flask装备: 学习自:知了课堂Python Flask框架——全栈开发 1.Python版本:3.6 2.Pycharm软件: 3.安装虚拟环境: (1)安装virtualenv: pip ins ...
- #3使用html+css+js制作网页 番外篇 使用python flask 框架 (II)
#3使用html+css+js制作网页 番外篇 使用python flask 框架 II第二部 0. 本系列教程 1. 登录功能准备 a.python中操控mysql b. 安装数据库 c.安装mys ...
- #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)
#3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...
- Python Flask框架路由简单实现
Python Flask框架路由的简单实现 也许你听说过Flask框架.也许你也使用过,也使用的非常好.但是当你在浏览器上输入一串路由地址,跳转至你所写的页面,在Flask中是怎样实现的,你是否感到好 ...
- Python——Flask框架——程序的结构
一.项目结构 |-flasky |-app Flask程序一般都保存在这里 |-templates/ |-static/ |main/ |-__init__.py |-errors.py |-form ...
- python Flask框架mysql数据库配置
我是一个没有笔记习惯的低级程序员,但是我还是喜欢编程,从小学就开始跟着玩电脑,对抓鸡,ddos,跳板刷钻开始了自己的IT 旅程,之后学习了各种语言,但是可惜都不没有达到精通,都是略懂一二,现在想把Py ...
随机推荐
- WebGL 3D 电信机架实战之数据绑定
前言 在前端中,视图层和数据层需要进行单向或者双向数据绑定,大家都已经不陌生了,有时候 2D 做的比较顺了之后,就会想要挑战一下 3D,不然总觉得痒痒的.这个 3D 机架的 Demo 我觉得非常有代表 ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- JS基础二
JS的实现: 核心:ECMAScript ECMAScript 并不与任何具体浏览器相绑定,实际上,它也没有提到用于任何用户输入输出的方法(这点与 C 这类语言不同,它需要依赖外部的库来完成这类任务) ...
- spring boot高性能实现二维码扫码登录(上)——单服务器版
前言 目前网页的主流登录方式是通过手机扫码二维码登录.我看了网上很多关于扫码登录博客后,发现基本思路大致是:打开网页,生成uuid,然后长连接请求后端并等待登录认证相应结果,而后端每个几百毫秒会循环查 ...
- ImageLoader 笔记
BitmapFactory 我们不能够通过构造函数创建Bitmap对象.如果需要将图片转成Bitmap对象加载到内存中,就需要使用BitmapFactory类.BitmapFactory跟据图片数据源 ...
- poj 2681 字符串
http://poj.org/problem?id=2681 给你任意长度的字符串,找出两串字符中不相同的字符个数(总数) #include<string> #include<cst ...
- 【Ansible】 基于SSH的远程管理工具
[Ansible] 参考文档:[http://www.ansible.com.cn/docs/intro.html] 和ansible类似的工具还有saltstack,puppet,sshpass等, ...
- 【Linux】 环境变量与shell配置&执行
■ 变量与环境变量 shell环境通常存在很多变量,变量可以通过echo $VAR或${VAR}的方式查看.set命令可以查看当前环境中的所有变量(包括一般的自定义变量和环境变量) 变量的设置通过简单 ...
- 【Linux】 CentOS7 虚拟机配置
Linux虚拟机配置 从去年开始实习开始,公司电脑换了两个,自己的电脑也换了一个,每换一个新电脑,总免不了要去装一个Linux的虚拟机作为试验用.但是每次新装一个机器总是会遇到各种各样的问题让我用的不 ...
- saltStack 安装部署
1.saltStack 服务架构介绍 SaltStack 是一种基于C/S架构的服务模式,在SaltStack架构中服务器端叫作Master,客户端叫作Minion,传统C/S架构为:客户端发送请求给 ...