flask组件的使用和安装

1. flask-sqlalchemy

        a. 下载安装
            pip3 install flask-sqlalchemy
        b. chun.__init__.py 
            导入并实例化SQLAlchemy
            from flask_sqlalchemy import SQLAlchemy
            db = SQLAlchemy()
            
            注意事项:
                 - 必须在导入蓝图之前
                 - 必须导入models.py 
        c. 初始化
            db.init_app(app)
            
        d. 在配置文件中写入配置
            # ##### SQLALchemy配置文件 #####
            SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/s9day122?charset=utf8"
            SQLALCHEMY_POOL_SIZE = 10
            SQLALCHEMY_MAX_OVERFLOW = 5
        
        e. 创建models.py中的类(对应数据库表)
            chun/models.py 
                from sqlalchemy.ext.declarative import declarative_base
                from sqlalchemy import Column
                from sqlalchemy import Integer,String,Text,Date,DateTime
                from sqlalchemy import create_engine
                from chun import db


                class Users(db.Model):
                    __tablename__ = 'users'

                    id = Column(Integer, primary_key=True)
                    name = Column(String(32), index=True, nullable=False)
                    depart_id = Column(Integer)
        
        f. 生成表(使用app上下文)
            from chun import db,create_app

            app = create_app()
            app_ctx = app.app_context() # app_ctx = app/g
            with app_ctx: # __enter__,通过LocalStack放入Local中
                db.create_all() # 调用LocalStack放入Local中获取app,再去app中获取配置

                
        g. 基于ORM对数据库进行操作。
            from flask import Blueprint
            from chun import db
            from chun import models
            us = Blueprint('us',__name__)


            @us.route('/index')
            def index():
                # 使用SQLAlchemy在数据库中插入一条数据
                # db.session.add(models.Users(name='高件套',depart_id=1))
                # db.session.commit()
                # db.session.remove()
                result = db.session.query(models.Users).all()
                print(result)
                db.session.remove()

                return 'Index'
        
    2. flask-script 
        pip3 install flask-script 
        
        功能:
            a. 增加 runserver
                from chun import create_app
                from flask_script import Manager


                app = create_app()
                manager = Manager(app)

                if __name__ == '__main__':
                    # app.run()
                    manager.run()
                    
            b. 位置传参
                from chun import create_app
                from flask_script import Manager


                app = create_app()
                manager = Manager(app)

                @manager.command
                def custom(arg):
                    """
                    自定义命令
                    python manage.py custom 123
                    :param arg:
                    :return:
                    """
                    print(arg)


                if __name__ == '__main__':
                    # app.run()
                    manager.run()
            c. 关键字传参
                from chun import create_app
                from flask_script import Manager


                app = create_app()
                manager = Manager(app)

                @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__':
                    # app.run()
                    manager.run()
    
    
    3. flask-migrate 
        pip3 install flask-migrate 
        依赖:flask-script 
    
            #!/usr/bin/env python
            # -*- coding:utf-8 -*-

            from sansa import create_app
            from sansa import db

            from flask_script import Manager
            from flask_migrate import Migrate, MigrateCommand

            app = create_app()
            manager = Manager(app)
            Migrate(app, db)

            """
            # 数据库迁移命名
                python manage.py db init
                python manage.py db migrate
                python manage.py db upgrade
            """
            manager.add_command('db', MigrateCommand)


            if __name__ == '__main__':
                manager.run()
                # app.run()


    4. 找到项目使用的所有组件和版本。
        pip install pipreqs
        
        pipreqs ./ --encoding=utf-8 
        
    
    5. 虚拟环境 
        pip3 install virtualenv
        
        
        virtualenv env1  --no-site-packages
        
        activate
        deactivate
        

 

posted @ 2018-06-22 21:12  liang哥哥  阅读(839)  评论(0)    收藏  举报