基于SQLAIchemy的Flask目录

Posted a3384451

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于SQLAIchemy的Flask目录相关的知识,希望对你有一定的参考价值。

预先知识

flask的基本使用

快速搭建开发的目录,以后我们在用Flask开发项目的时候可以直接用这个目录,不需要再自己创建.

flask-sqlalchemy

flask-sqlalchemy相当于是粘合剂,他把flask跟sqlalchemy粘合在一起,

安装

pip install flask-sqlalchemy

使用

  • 在你的项目中的__init__.py:
#导入并实例化SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
import models

注意事项:

  • - 必须在导入蓝图之前
  • - 必须导入models.py

在__init__.py中

#初始化
db.init_app(app)

 

 

  •  在配置文件中写入配置
    # ##### SQLALchemy配置文件 #####
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/s9day122?charset=utf8"
    SQLALCHEMY_POOL_SIZE = 10
    SQLALCHEMY_MAX_OVERFLOW = 5

    更多配置信息的详解--->猛击这里

  •  创建models.py中的类(对应数据库表) 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)
  • 当配置完上面的内容,我们已经可以对数据库增加表操作(但是我们一般不用,后面有组件帮助我们实现)
# 生成表(使用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中获取配置
  • 基于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()

 

flask-script 

该组件可以帮我们增加像Django一样,输入命令进行runserver,也可以自己自定制命令操作

安装

pip install flask-script 

使用

配置

在manage.py文件中导入模块,并且注册manager

from flask_script import Manager
app = create_app()
manager = Manager(app)

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

当完成这部操作的时候我们就可以对 用命令进行runserver开启我们的Flask程序

manage.py runserver -h 127.0.0.1 -p 8001

 

自定义命令

位置传参

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()

关键字传参

 

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()

 

flask-migrate 

依赖flask-script 

安装

pip install flask-migrate 

使用

 在manage.py文件中:

# -*- coding:utf-8 -*-

from BaseFlask import create_app
from BaseFlask 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 #相当于Django的makemigration
    python manage.py db upgrade #相当于Django的migrate
"""
manager.add_command(\'db\', MigrateCommand)


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

 

点击下载示例

 

以上是关于基于SQLAIchemy的Flask目录的主要内容,如果未能解决你的问题,请参考以下文章

python之SQLAIchemy

python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用

[分享]《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码

25数据可视化:基于 Echarts + Python Flask框架动态实时大屏范例 - 企业宣传

python Flask - 数据库片段

数据可视化看板:基于 Echarts + Python Flask 动态实时大屏