参数传导与模块引入(重点)【flask web 1-32页】

本文介绍了在Flask中如何安装和使用关键组件。通过`pip install flask`引入Flask,并创建应用程序实例。`request`对象封装了HTTP请求内容,`make_response`用于构建响应,包括设置cookie。`redirect`和`abort`处理重定向和错误。此外,讨论了如何使用Flask-Script启动Web服务器,`render_template`结合Jinja2模板引擎渲染HTML,以及Flask-Bootstrap和Flask-Moment库集成Bootstrap和时间处理。
摘要由CSDN通过智能技术生成

(venv)pip install flask

flask,Flask,app

from flask import Flask
app = 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 Manager
manager = 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 Moment
moment = 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())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值