zoukankan      html  css  js  c++  java
  • flask_sqlalchemy

     基于蓝图完整的falsk项目

    flask_script

    安装: pip3 install flask_script

    flask_script作用:

      -改变flask的启动方式:python manage.py runserver

      -自定义命令:               python   manage.py   自定义命令

    示例:

    manege.py

    from flask_script import Manager
    from flaskscript import create_app
    
    app=create_app()
    manager=Manager(app)
    
    @manager.command      #执行命令  python manage.py  custom 123
    def custom(arg):
        """
        自定义命令
        python manage.py custom 123
        :param arg:
        :return:
        """
        print(arg)
    
    
    @manager.option('-n', '--name', dest='name')
    @manager.option('-u', '--url', dest='url')
    def cmd(name, url):
        """
        自定义命令
        执行: python manage.py  cmd -n wupeiqi -u http://www.oldboyedu.com
        :param name:
        :param url:
        :return:
        """
        print(name, url)
    
    if __name__=="__main__":
        manager.run()

    flask_sqlalchemy

    安装:pip3 install flask_sqlalchemy

    作用:将SQLAlchemy相关的所有功能都封装到db=flask_sqlalchemy.SQLAlchemy()对象中
         - 创建表
           class User(db.Model):
              pass
            
         - 操作表
             db.session 

    flask_mrigrate

            作用:做数据库迁移
            依赖:
                flask-script 
                flask-sqlalchemy 
            
    
            Migrate(app, db)
            """
            # 数据库迁移命令
                python manage.py db init
                python manage.py db migrate # makemigrations
                python manage.py db upgrade # migrate
            """
            manager.add_command('db', MigrateCommand)

    完整flask项目

    下载项目文件

    离线脚本

    Web运行时:启动flask项目,用户通过浏览器访问

    离线脚本:   自己写的py文件,使用flask中定义好的组件(wtforms,数据库),不用启动flask项目

    详细见falsk项目

    多app应用

    #对url进行处理和分发
    
    from flask import Flask
    from werkzeug.wsgi import DispatcherMiddleware
    from werkzeug.serving import run_simple
    
    app01 = Flask('app01')
    app02 = Flask('app02')
    
    
    @app01.route('/login')
    def login():
        return 'app01.login'
    
    
    @app02.route('/index')
    def index():
        return 'app02.index'
    
    # 访问"login"--->"http://localhost:5000/login"
    # 访问"index"--->"http://localhost:5000/app02/index"
    dm = DispatcherMiddleware(app01, {
        '/app02': app02,
    })
    
    if __name__ == '__main__':
        run_simple('localhost', 5000, dm)
    View Code
  • 相关阅读:
    递归函数写法
    海量数据问题总结
    文本分类项目总结
    梯度提升树-负梯度和残差的理解
    正则化方法L1 L2
    c++-虚函数与多态
    数据结构-并查集
    剑指offer 面试63题
    剑指offer 面试62题
    剑指offer 面试60题
  • 原文地址:https://www.cnblogs.com/caochao-/p/8992941.html
Copyright © 2011-2022 走看看