Flask框架6(配置、部署、交互、路由)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask
import click

"""
ps:如果想使用 flask run 命令启动开发服务器需要有app.py和wsgi.py模块且app.py文件中必须有app或者application的程序实例
   开发服务器默认监听http://127.0.0.1:5000/ 地址 并开启多线程支持
   管理环境变量模块:pip install python-dotenv
   外部可见方法:命令行 flask run --host=0.0.0.0  >>>  地址为本机内网ip或者拥有的公网ip
   内网穿透端口转发工具:ngrok或者localtunnel
   设置运行环境:FLASK_ENV = production(生产)/development(开发)
   调试模式:FLASK_DEBUG = 1(开启) / 0(关闭)
   监控文件变动库:pip install watchdog  ==> 注意css与js文件修改不会立即生效,需要硬重载【浏览器端处理】
   交互模式:flask shell  ===》 会自动开启程序上下文与请求上下文执行exit()退出
   显示所有注册路由:flask routes
   自定义命令参照:https://click.palletsprojects.com/en/6.x/
"""

app = Flask(__name__)
# 加载配置项,配置名称必须全大写,update可以加载多个值
app.config["ADMIN_NAME"] = 'Peter'
app.config.update(
    SECET_KEY='231321',
    TESTING=True,
    HOST='0.0.0.0',
    PORT=6666
)

@app.route('/appu')
@app.route('/')
def index():
    """双层url"""
    return "<h1>hello_word</h1>"

@app.route('/greet/<name>')
def genev(name):
    """带参数"""
    return '<h1>hello_word==>{}</h1>'.format(name)

@app.route('/greet', defaults={"name":"progra"})
@app.route('/greet/<name>')
def genev_l(name):
    """带参数加默认值"""
    return '<h1>hello_word==>{}</h1>'.format(name)


@app.route('/lv')
@app.route('/lv/<name>')
def lv(name='rr'):
    """传入参数携带默认值"""
    return '<h1>hello_word==>{}</h1>'.format(name)

@app.route('/urlfor/<rt>')
def rtu(rt):
    return 'hello {}'.format(rt)

@app.cli.command()
def uuk():
    """注册flask命令==》交互方式启动==》flask uuk"""
    click.echo('hello_uuk')

@app.cli.command('se-you')
def ind():
    """注册flask命令==》交互方式启动==》flask se-you"""
    print("定义命令名称为se-you")


if __name__ == '__main__':
    app.run(host='0.0.0.0')

 

posted @ 2019-03-19 11:51  争-渡  阅读(157)  评论(0)    收藏  举报