参数传导与模块引入(重点)【flask web 1-32页】
来源:互联网 发布:mac py终端指的是什么 编辑:程序博客网 时间:2024/04/30 13:17
(venv)pip install flask
flask,Flask,app
from flask import Flaskapp = Flask(__name__)
从flask引入Flask类,创建一个叫app的程序实例,所有接受自客户端的请求都交给这个app程序实例(Flask类的对象)处理。Flask也用这个参数(app)决定了程序的根目录,以便能找相对于根目录的资源文件位置。
request(其他还有current_app,g,session)
from flask import request@app.route('/')def index(): user_agent= request.headers.get('User-Agent') return '<p>Your brower is %s<p>' % user_agent
request请求对象,它封装了客户端发出的HTTP请求中的内容
make_response
from flask import make_response@app.route('/'):def index(): response = make_response('<h1>This document carries a cookie!</h1>') response.set_cookie('answer','42') return response
响应包括HTML页面,状态码,由首部组成的字典,那么多的参数不好解决,这时Response对象应运而生。
make_response函数可接受几个参数,response.set_cookie()可以设置cookie,统一返回一个response。
redirect,abort
from flask import redirect,abort@app.route('/')def index(): return redirect('http://www.example.com')@app.route('/user/<id>')def get_user(id): user = load_user(id) if not user: abort(404) return '<h1>Hello,%s</h1>' % user.name
redirect重定向函数,还有一个特殊响应由abort函数生成,用于处理错误。
user = load_user(id)解析传入的id,与model中的user对比。
(venv)pip install flask-script
from flask.ext.script import Managermanager = Manager(app)#...if __name__ == '__main__': manager.run()
使用Flask-Script支持命令行选项
现在运行python hello.py会显示一个用法消息,运行python hello.py runserver来启动Web服务器。
render_template
from flask import Flask,render_template#...@app.route('/user/<name>')def user(name): reuturn render_template('user.html', name=name)
Flask提供的render_template函数把JinJia2模板引擎集成到程序中。render_template函数的第一个参数是模板的文件名。随后的参数都是键值对。
(venv)pip install flask-bootstrap
from flask.ext.bootstrap import Bootstrap#...bootstrap = Bootstrap(app)
把程序实例app传入构造方法进行初始化,初始化Flask-boostrap之后,程序就可以使用一个包含所有Bootstrap文件的基模板。Flask-bootstrap中的基模板提供的一个网页框架,引入了Bootstrap中的所有CSS和JavaScript文件。
(venv)pip install flask-moment
Moment
from flask.ext.moment import Momentmoment = Moment(app)
Flask-moment依赖moment.js和jquery.js,Bootstrap已经引入jquery.js,还得在base.html引入moment.js库,如下:
{% block scripts %}{{ super() }}{{ moment.include_moment() }}{% endblock %}
在index.html中放置渲染时间的文本,如下:
<p>本地时间为{{ moment(current_time().format('LLL')}}.</p><p>现在过了{{ moment(current_time).fromNow(refresh=True) }}.</p>
datetime
以下代码吧变量current_time传入模板进行渲染:
from datetime import datetime@app.route('/')def index(): return render_template('index.html', current_time=datetime.utcnow())
- 参数传导与模块引入(重点)【flask web 1-32页】
- 《Flask Web开发》重点笔记
- 《flask web开发》第三章重点
- 《flask web开发》第四章重点
- 《flask web开发》第五章重点
- 学习小记-Flask Web(1)-Flask程序结构
- Python Web框架之Flask(1)
- Python Flask Web 开发(1)
- Python Web 3 ——引入flask框架
- Flask Web 开发 番外篇_关于扩展引入的坑
- web上课重点记录(1)
- 《Flask Web开发》读书笔记(1)第1章安装(关键词:Web开发/Flask)
- 《Flask Web开发》读书笔记(3)第1章安装(关键词:Web开发/Flask)
- SAP PM模块实施难点与重点
- Flask web学习笔记1
- Web表单(Flask-WTF)
- Python Web开发与Flask简介
- web前端表单(重点)
- Linux常用命令
- 女友校招笔试编程题:网易测试岗-买苹果和求最大奇约数
- Android Fragment中嵌套Fragment,不显示view
- 每队顶点之间的最短路径(弗洛伊德算法)
- 点击 datagridview header 发生崩溃
- 参数传导与模块引入(重点)【flask web 1-32页】
- Linux的基础目录名称、命名法则及功能规定
- JQuery EasyUI DataGrid复杂表头的处理
- Node.js 究竟是什么?
- Httputils专题
- java中的StringBuilder类的使用, String、StringBuilder、StringBuffer的区别
- 面试心得与总结-——答案整理
- 从gff3文件获得fasta序列
- Linux计算机组成和基本命令详解