Flask框架(一)

发布时间:2019-05-29 21:26:02编辑:auto阅读(1976)

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return '<h1>hello world</h1>'
    
    app.run()

     

    在run()中添加配置

    debug  是否调试,修改后自动重启, 可以动态调试

    threaded  是否多线程

    post  端口

    host  主机

     

    插件、扩展库

    1.下载,安装

    2.初始化配置

     

    flask-script

    from flask import Flask
    from flask_script import Manager
    
    
    app = Flask(__name__)
    
    manager = Manager(app=app)
    
    
    @app.route('/')
    def index():
        a = 10
        b = 0
        c = a/10
        return '<h1>hello world</h1>'
    
    
    if __name__=='__main__':
        # app.run(debug=True, port=8000, host='0.0.0.0')
        manager.run()

    直接运行没有效果,需要输入参数

    (venv) D:\python3\_Flask>python hello.py runserver
    
     * Serving Flask app "hello" (lazy loading)
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

    多个各种参数

    (venv) D:\python3\_Flask>python hello.py runserver -d -r -h 0.0.0.0 -p 8000
    
     * Serving Flask app "hello" (lazy loading)
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: on
     * Restarting with stat
     * Debugger is active!
     * Debugger PIN: 184-573-979
     * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)

     

    Flask路由参数

    @app.route('/params/<ni>/')
    def params(ni):
        return '获取参数' +  ni
    
    @app.route('/get/<string:name>/')
    def get_name(name):
        return '获取name' + name
        
    @app.route('/get_age/<int:age>/')
    def get_age(age):
        return age
    
    #会将斜线认为是字符    
    @app.route('/get_path/<path:Path>/')
    def get_path(Path):
        return Path
    
    @app.route('/get_uuid/<uuid:id>/')
    def get_uuid(id):
        return id.uuid64()
    
    #从列出的元组中的任意一个
    @app.route('/get_any/<any(c, d, e):any>/')
    def get_any(any):
        return any

    请求方法

    @app.route('/get_any/<any(c, d, e):any>/', methods = ['GET', 'POST'])
    def get_any(any):
        return any

     

     反向解析

    @app.route('/url')
    def url():
    
        print(url_for('get_any', any='c'))
        return '反向解析'

     

关键字