1.自定义命令

2.多app应用

3.wtforms认证

4.sqlalchemy介绍

5.scoped_session

6.单表操作

7.一对多关系

8.多对多关系

9.flask-sqlalche

一.自定义命令

用于实现类似于django中python3 manage.py runserver ....类似的命令

首先导入flask-script

# 第一步先安装:pip3 install flask-script
# 执行方式:python install flask-script.py runserver
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager=Manager(app)

@app.route("/")
def index():
    return "ok"

# 自定义命令
@manager.command
def custom(arg,a):
    """
    如果在传一个参数,就打印2个
    第一种自定义命令的方式
    python manage.py custom 123
    :param arg:
    :return:
    """
    print(arg,a)

@manager.option('-n', '--name', dest='name')
@manager.option('-u', '--url', dest='url')
def cmd(name, url):
    """
    注意:这个装饰器要对应着函数里面的参数,有几个装饰器就要对应的有几个参数
    第二种自定义命令的方式(-n也可以写成--name)
    执行: python manage.py  cmd -n lqz -u http://www.oldboyedu.com
    执行: python manage.py  cmd --name lqz --url http://www.oldboyedu.com
    :param name:
    :param url:
    :return:
    """
    print(name, url)
if __name__ == '__main__':
    manager.run()

二.多app应用

from werkzeug.wsgi import DispatcherMiddleware
from werkzeug.serving import run_simple
from flask import Flask
app1 = Flask('app01')
app2 = Flask('app02')
'''
有2个app url路径是一样的,如何可以区别他们2个,
可以在一个app下面配置一个
dm = DispatcherMiddleware(app1, {
    '/sec12': app2,
})
指定一下,在访问app2时前面加上一个sec12就可以了,
访问app1时就照常访问
'''
@app1.route('/index')
def index():
    return "app01"

@app2.route('/index')
def index2():
    return "app2"
dm = DispatcherMiddleware(app1, {
    '/sec12': app2,
})
if __name__ == "__main__":

    run_simple('localhost', 5000, dm)

三.wtforms(表单验证)

首先第一步需要安装:pip3 install wtforms

四.sqlalchemy介绍

五.scoped_session

六.单表操作

七.一对多关系

八.多对多关系

九.flask-sqlalche

01-02 23:03