zoukankan      html  css  js  c++  java
  • 第二章 程序的基本结构

    2.1初始化

    from flask import Flask
    app = Flask(__name__)

    2.2路由和视图函数

    @app.route('/')
    def index():
        return '<p>Hello World<p>' 

    2.3启动服务器

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

    2.4一个完整的程序

    from flask import Flask
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        return '<p>Hello World<p>' 
    
    
    if __name__ == '__main__':
        app.run(debug=True)

    执行该文件后,访问http://127.0.0.1:5000

    2.5请求-响应循环

    2.5.1 程序和请求上下文

    //获取header信息
    @app.route('/') def index(): user_agent = request.headers.get('User-Agent') return '<p>Your browser is %s<p>' % user_agent

    2.5.2 请求调度

    >>> app.url_map
    Map([<Rule '/' (HEAD, OPTIONS, GET) -> index>,
     <Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>,
     <Rule '/user/<name>' (HEAD, OPTIONS, GET) -> user>])

    2.5.3 请求钩子

    before_first_request 处理第一个请求之前运行

    before_request 每次请求之前运行

    after_request 如果没有异常抛出,每次请求之后运行

    teardown_request 即使有异常抛出,也在请求之后运行

    不详

    2.5.4 响应

    // 返回400
    @app.route('/')
    def index():
        return '<h1>Bad Request</h1>', 400
    // 设置响应,响应时设置浏览器cookie
    @app.route('/res')
    def res():
        response = make_response('<h1>This document carries a cookie!</h1>')
        response.set_cookie('answer', '42')
        return response
    // 重定向链接
    @app.route('/red')
    def red():
        return redirect('http://www.baidu.com')
    // 不满足条件主动抛出404
    app.route('/user_id/<user_id>')
    def get_user(user_id):
        re_user = load_user(user_id)
        if not re_user:
            abort(404)
        return '<h1> hello, %s</h1>' % re_user
    
    
    def load_user(user_id):
        re_id = str(user_id)
        re = {"1": "user_a", "2": "user_b"}
        return re.get(re_id)

    2.6 Flask扩展

    安装扩展

    (venv) $ pip install flask-script

    导入扩展

    from flask.ext.script import Manager
    manager = Manager(app)

    if __name__ == '__main__':
    manager.run()

    使用扩展

    (venv) $ python hello.py runserver --help
  • 相关阅读:
    Thinking in Ramda: Getting Started
    计算机网络 第一章 绪论(习题)
    URI和URL傻傻分不清
    mac下安装sshpass并配置自动登录
    项目 NodeJS 版本锁定及自动切换
    项目部署篇(一)后端springboot项目打包和部署
    安卓开启GPS,native.js
    native.js,安卓判断APP是否在电池优化白名单
    Self-Supervised Visual Representations Learning by Contrastive Mask Prediction
    wireshark抓包工具使用介绍(附图)
  • 原文地址:https://www.cnblogs.com/jt-huang/p/6016384.html
Copyright © 2011-2022 走看看