博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一 flask介绍 三
阅读量:7224 次
发布时间:2019-06-29

本文共 2124 字,大约阅读时间需要 7 分钟。

13 About Responses

view function会自动转换返回对象类型为response

1 如果返回值为string,那么返回值作为参数创建一个response
2 如果返回值为tuple,例如 (response, status, headers) or (response, headers)

make_response()会创建一个response

14 Sessions

除了request可以store information,其包括由一个请求到下一个。另外一个是object session。

app.secret_key = b'_5#y2L"F4Q8z\n\xec][/'

@app.route('/')

def index():
if 'username' in session:
return 'logined in as %s' % escape(session['username'])
return 'you are not logged in'

@app.route('/login', methods=['GET', 'POST'])

def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
else:
return '''
<form method="post">
<p><input type=text name=username>
<p><input type=submit value=Login>
</form>
'''
@app.route('/logout')
def logout():
if session['username']: #direct run session exception,KeyError: 'username'
#if not exist,return None,which not need if aboved
session.pop('username',None)
return redirect(url_for('index'))

概念:

序列是Python的基本数据结构,每个元素指定一个数字,或者说index,从0开始。
可以对序列index, 切片,加,乘,迭代 for x in (1,2,3),检查成员3 in (1,2,3)。
常见的序列有list,tuple。 list实现了stack,queue操作。tuple没有stack操作。
dictionary实现了stack操作。

note:

sessions保存的信息,在server重启后,browser连接server,sessions的信息还是存在的。

15 Message Flashing

通过flash函数,user在view中flash message

通过 get_flashed_messages()函数,user在template中获取messages。
这样用户就能获取更多的信息feedback。

flash('logined successfully!')

{% with messages = get_flashed_messages() %}

{% if messages %}
<li>{
{messages}}</li>
{% endif%}
{% endwith%}

输出:

['logined successfully!']

案例

return render_template('index.html',user=escape(session['username']))
return render_template('index.html',user='')
报错:
return render_template('index.html',user='')
^ SyntaxError: invalid syntax
原因:
return render_template('index.html',user=escape(session['username'])) 少一个括号
分析方法:
找一个对的,粘贴到txt中对比分析。

16 Logging

使用logger来记录

例如:

app.logger.debug('A value for debugging')
app.logger.warning('A warning occurred (%d apples)', 42)
app.logger.error('An error occurred')

17 Hooking in WSGI Middlewares

18 Using Flask Extensions

例如:

Flask-SQLAlchemy

19 Deploying to a Web Server

转载于:https://blog.51cto.com/12408798/2376669

你可能感兴趣的文章
piwik 案例介绍
查看>>
敏感字过滤
查看>>
为什么我们要从 NodeJS 迁移到 Ruby on Rails
查看>>
Android 文件式数据库Realm
查看>>
Linux 面试知识点笔记
查看>>
论flex布局和box布局的华为meta8手机自带浏览器的兼容
查看>>
dubbo与springcloud初识
查看>>
iis web.config 配置示例
查看>>
归并排序
查看>>
java 的转义字符
查看>>
SharedPreferences的使用注意事项
查看>>
sofa-pbrpc高级用法
查看>>
Oracle 函数返回表实例2种写法实例
查看>>
mysql数据库主从复制
查看>>
Shell标准输出、标准错误 >/dev/null 2>&1
查看>>
Android自定义对话框(Dialog)位置,大小
查看>>
设置python的默认编码为utf8
查看>>
简易sqlhelper-java
查看>>
通过案例对SparkStreaming 透彻理解三板斧之一:解密SparkStreaming运行机制
查看>>
HBuilder 学习笔记
查看>>