python框架之Flask基础篇(三)-------- 模版的操作
1.flask特有的变量和函数:
变量:g、session、request、config
函数:url_for()、get_flashed_messages()这个函数注意了啊,记住这是个函数,别忘了写括号!!!!!!!!!
废话不多说,直接上代码体验一下:
先解释一个bug,当我们设置了# -*- coding:utf-8 -*-,但是当返回浏览器页面的数据是汉字的时候还会出现字符编码问题,如下:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)
此时就需要在视图函数的那个.py文件中加入一下几行代码,就解决了编码问题:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
# -*- coding:utf-8 -*-
from flask import Flask
from flask import flash,render_template,session,g
# 解决编码问题
import sys
reload(sys)
sys.setdefaultencoding("utf-8") app = Flask(__name__)
app.secret_key = 'hello' @app.route('/',methods=["GET","POST"])
def hello_world():
# flash底层是将闪现信息放在了session中,所以需要设置secret_key
flash("python")
return g.age @app.route('/set_session', methods=['GET', 'POST'])
def set_session():
session["name"] = "wangwu"
g.age = 18
return render_template('six_variable.html') if __name__ == '__main__':
app.run(debug=True)
这是前段代码:
1.flash:
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
<br>
2.request:<br>
{{ request.url }} <br> 比如:得到的该路径为:http://localhost:5000/get_session
{{ request.url_root }} <br> 结果为:http://localhost:5000/
{{ request.url_rule }} <br> 结果为:/get_session
{{ request.url_charset }} <br>结果为:utf-8
3.config:<br>
{{ config.root_path }} <br> 获取项目跟路径
{{ config.DEBUG }} <br> 获取DEBUG模式的值 在前段页面字典取值得两种方法
{{ config["SECRET_KEY"] }}<br>
4.session:<br>
{{ session.name }} <br>
{{ session["name"] }} <br>
5.url_for:<br>
{{ url_for("set_session") }}<br>
<a href="{{ url_for("hello_world") }}">hello_world</a><br>
6.g:<br>
{{ g.age }}
python框架之Flask基础篇(三)-------- 模版的操作的更多相关文章
- python框架之Flask基础篇(二)-------- 数据库的操作
1.flask连接数据库的四步: 倒入第三方数据库扩展包:from flask_sqlalchemy import SQLAlchemy 配置config属性,连接数据库: app.config[&q ...
- python框架之Flask基础篇(一)
一.第一个hello world程序 # coding=utf-8 from flask import Flask app = Flask(__name__) @app.route('/') def ...
- python框架之Flask基础篇(四)-------- 其他操作
1.蓝图 要用蓝图管理项目,需要导入的包是:from flask import Buleprint 具体大致分为三步: 1.先在子模块中导入蓝图包,然后再创建蓝图对象. 2.然后将子模块中的视图函数存 ...
- Lua 学习之基础篇三<Lua 字符串操作>
Lua字符串可以使用以下三种方式表示: 单引号间的一串字符. 双引号间的一串字符. [[和]]间的一串字符. string = [["Lua"]] print("字符串 ...
- Python学习笔记之基础篇(-)python介绍与安装
Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...
- 智普教育Python视频教程之入门基础篇,python笔记
智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...
- Python(四)基础篇之「文件对象&错误处理」
[笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE 编程之魅 Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...
- 小白学 Python 爬虫(35):爬虫框架 Scrapy 入门基础(三) Selector 选择器
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Python基础篇(三)_函数及代码复用
Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...
随机推荐
- 【Codeforces 992B】Nastya Studies Informatics
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 因为gcd(a,b)=x 所以设a = nx b = mx 又有ab/gcd(a,b)=lcm(a,b)=y 则nmx = y 即n(m*x) ...
- [luoguP1072] Hankson 的趣味题(数论)
传送门 由题意得 gcd(x, a0) = a1 ——> gcd(x / a1, a0 / a1) = 1 lcm(x, b0) = b1 ——> x * b0 / gcd(x, b0) ...
- mdbtools使用
1.导入数据库到mysql(将key.mdb导入MySQL的test数据库,此时只导入表结构) mdb-schema key.mdb mysql | mysql -u root -p test 2.将 ...
- 中庸之道(codevs 2021)
题目描述 Description 给定一个长度为N的序列,有Q次询问,每次询问区间[L,R]的中位数. 数据保证序列中任意两个数不相同,且询问的所有区间长度为奇数. 输入描述 Input Descri ...
- Springmvc 一个简单的管理系统 我所遇到的坑1(持续更新)
前言 好久没有用springmvc写项目了,抽时间写一个简单的springmvc项目 是什么(what)为什么(why)怎么做(how) 1.读书破万卷下笔如有神(理清思路,知识储备和前期整理) 2. ...
- Node & Express: some tips
1. 设置Express端口号: 在app.js中添加 app.set('port', process.env.PORT || 3000); 之后命令行中打入 PORT=1234 node app.j ...
- 违章查询免费api接口代码
能够依据城市+车牌号+发动机号查询违章信息列表. 违章实体类 package org.wx.xhelper.model; /** * 违章实体类 * @author wangxw * @version ...
- Raphael.js image 在ie8以下的兼容性问题
Raphael.js 在ie7,ie8浏览器内绘制图形採用的vml,在绘制image的时候会解析成 <?xml:namespace prefix = "rvml" ns = ...
- Unity游戏小地图生成
孙广东 2015.6.25 这个在AssetStore上有几个不错的插件, 除了知道原理,能自己实现还是好的. 非常多插件是不会直接使用的.而是要依据自己项目的需求进行改动或者就是自己写. 那么我们 ...
- excel 字符串拼接 添加 超链接
=HYPERLINK("http://"&C2,"http://"&C2)