python框架之Flask基础篇(三)-------- 模版的操作

栏目: Python · 发布时间: 8年前

内容简介: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 }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

颠覆医疗

颠覆医疗

[美]埃里克·托普 / 张南、魏薇、何雨师 / 译言·东西文库/电子工业出版社 / 2014-1-20 / 55.00

“创造性破坏”是奥地利经济学家约瑟夫·熊彼特最著名的理论,当一个产业在革新之时,都需要大规模地淘汰旧的技术与生产体系,并建立起新的生产体系。电器之于火器、汽车之于马车、个人计算机之于照排系统,都是一次又一次的“创造性破坏”,旧的体系完全不复存在,新的体系随之取代。 “创造性破坏”已经深深地改变了我们的生活,在这个数字时代,我们身边的一切都被“数字化”了。只有一处,也许是由于其本身的根深蒂固,......一起来看看 《颠覆医疗》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具