基于Python的Flask Web 开发 笔记 (1)

1)安装

$ pip install flask


2) 主要程序结构


from flask import Flask   
from flask import request

app = Flask(__name__)     #初始化

@app.route('/')		# 路由,URL和对应处理函数
def index():		# 视图函数,渲染返回页面
    user_agent = request.headers.get('User-Agent')
    return '

Your browser is %s

' % user_agent @app.route('/user/') # 动态路由,加参数的请求处理 def user(name): return '

Hello, %s!

' % name if __name__ == '__main__': app.run(debug=True) # 启动服务器

3)请求响应循环

Flask从客户端收到请求时,要让视图函数能访问一些对象, request 对象就是一个很好的例子。

上述例子打印出了UA(用户代理)内容

Flask 使用上下文临时把某些对象变为全局可访问 ,有 程序上下文 和 请求上下文

程序上下文: current_app g 请求上下文: request  session

上下文需要推送后,才可调用。 app.route 或 app.add_url_rule() 生成路由映射


响应,

可返回响应内容和状态吗

设置cookie或重定向

from flask import Flask
from flask import request
from flask import make_response
from flask import redirect

app = Flask(__name__)

@app.route('/')
def index():
    #resp = make_response('

This doc carries a cookie

') #resp.set_cookie('answer', '42') #return resp return redirect('http://www.csdn.net') @app.route('/user/') def user(name): return '

Hello, %s!

' % name if __name__ == '__main__': app.run(debug=True)

abort 响应函数

from flask import abort
@app.route('/user/')
def get_user(id):
    user = load_user(id)
    if not user:
        abort(404)
    return '

Hello, %s

' % user.name

Flask扩展

使用Flask-Script支持命令行选项

安装: $ pip install flask-script

from flask.ext.script import Manager manager = Manager(app)
# ...
if __name__ == '__main__':
    manager.run()

$ python hello.py runserver --host 0.0.0.0
      * Running on http://0.0.0.0:5000/
      * Restarting with reloader

Web 服务器可使用 http://a.b.c.d:5000/ 网络中的任一台电脑进行访问,其中“a.b.c.d”是服务器所在计算机的外网 IP 地址 




你可能感兴趣的:(学习笔记)