08-02 06—10

______egon新书python全套来袭请看:https://egonlin.com/book.html

6. Flask项目中如何实现 session 信息的写入?

Flask中有三个 session:
第一个:数据库中的 session,例如:db.session.add()
第二个:在 flask_session 扩展中的 session,使用:from flask_session importSession,使用第三方扩展的 session 可以把信息存储在服务器中,客户端浏览器中只存储 sessionid。
第三个:flask 自带的 session,是一个请求上下文, 使用:from flask import session。自带的session 把信息加密后都存储在客户端的浏览器 cookie 中。

7. 项目接口实现后路由访问不到怎么办?

1.可以通过 postman 测试工具测试,或者看 log 日志信息找到错误信息的大概位置。
2.断点调试

8. Flask中url_for函数?

1.URL反转:根据视图函数名称得到当前所指向的url。
2.url_for() 函数最简单的用法是以视图函数名作为参数,返回对应的url,还可以用作加载静态文件。

 <link rel="stylesheet" href="{{url_for('static',filename='css/index.css')}}">  

该条语句就是在模版中加载css静态文件。
3.url_for 和 redirect 区别
url_for是用来拼接 URL 的,可以使用程序 URL 映射中保存的信息生成 URL。url_for() 函数最简单的用法是以视图函数名作为参数, 返回对应的 URL。例如,在示例程序中 hello.py 中调用
url_for('index') 得到的结果是 /。
redirect 是重定向函数,输入一个URL后,自动跳转到另一个URL所在的地址,例如,你在函数
中写 return redirect('https://www.baidu.com') 页面就会跳转向百度页面。

1. from flask import Flask,redirect,url_for   
2. app = Flask(__name__)   
3. @app.route('/')   
4. def index():   
5.     login_url = url_for('login')   
6.     return redirect(login_url)   
7.     return u'这是首页'   
8.   
9. @app.route('/login/')   
10. def login():   
11.     return  u'这是登陆页面'   
12.   
13. @app.route('/question/<is_login>/')   
14. def question(is_login):   
15.     if is_login == '1':   
16.         return  u'这是发布问答的页面'   
17.     else:   
18.         return  redirect(url_for('login'))   
19.    
20. if __name__ == '__main__':   
21.     app.run(debug=True)  

9. Flask中请求钩子的理解和应用?

请求钩子是通过装饰器的形式实现的,支持以下四种:
1,before_first_request 在处理第一个请求前运行
2,before_request:在每次请求前运行
3,after_request:如果没有未处理的异常抛出,在每次请求后运行
4,teardown_request:即使有未处理的异常抛出,在每次请求后运行
应用:
请求钩子

1. @api.after_request  
2. def after_request(response): 
3.    """设置默认的响应报文格式为 application/json""" 
4.    # 如果响应报文 response 的 Content-Type 是以 text 开头,则将其改为 
5.    # 默认的 json 类型 
6.    if response.headers.get("Content-Type").startswith("text"): 
7.     response.headers["Content-Type"] = "application/json" 
8.    return respon 

10. 一个变量后写多个过滤器是如何执行的?

{{ expression | filter1 | filter2 | ... }} 即表达式(expression)使用filter1 过滤后再将filter1的结果去使用 filter2 过滤。

posted @ 2019-10-22 21:41  小猿取经-林海峰老师  阅读(374)  评论(0编辑  收藏  举报