#!/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')