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
  • 相关阅读:
    SVN配置文件详解
    让Linux开机运行命令
    find命令用法介绍
    关于js优化和css优化
    弹性盒布局、头尾固定中间部分自适应布局
    css样式重置(初始化)收集
    动态嵌套form,使用Stimulus Js库(前后端不分离)
    给Mac的Dictionary添加其他原装词典
    使用rvm关联ruby版本和rails版本。
    Rails6.0 Beta版本1: ActionText的简单使用
  • 原文地址:https://www.cnblogs.com/caochao-/p/8992941.html
Copyright © 2011-2022 走看看