栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

falsk和mysql连接

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

falsk和mysql连接

项目文件结构

stusys/
├── models
│   ├── __init__.py  # SQLAlchemy
│   ├── user.py # 创建数据库
├── settings
│   ├── dev.py # 连接数据库配置
│   ├── index.py # 配置文件
├── view
│   ├── user.py # 请求
├── create_flask.py # 配置app
├── main.py # 运行文件
└── mifrate.py # 主程序文件

依赖包

pip install flask
pip install flask-sqlalchemy
pip install pymysql
flask连接创建数据库

index.py

class DefaultConfig:
    SECRET_KEY = '123456'

dev.py

from index import DefaultConfig

class DevConfig(DefaultConfig):
    DEBUG = True
    # 数据库的配置
    # 连接mysql的路由
    SQLALCHEMY_DATABASE_URI = 'mysql://root:204348@127.0.0.1:3306/jiyunstus'
    # 设置为True, 数据表修改时自动触发, 会显示修改, 但是需要额外的内存
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 设置为True, 会在终端下显示出所有的执行过程
    SQLALCHEMY_ECHO = True

create_flask.py

from flask import Flask
from flask_cors import CORS
from models import db
from views.user import user_bp

def create_factory_app(list):
    app = Flask(__name__)
    app.config.from_object(list)
    CORS(app)
    # 初始化整个项目的
    db.init_app(app)
    # 注册蓝图
    app.register_blueprint(user_bp)

    return app

init

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

user.py

from models import db


# 新建表User
class User(db.Model):
    __tablename__='users'
    id=db.Column(db.Integer, primary_key=True)
    username=db.Column(db.String(64), unique=True, index=True) #索引
    email = db.Column(db.String(64),unique=True)
    pswd = db.Column(db.String(64))
    role_id=db.Column(db.Integer, db.ForeignKey('roles.id')) # 外键

    def __repr__(self):
        return '' %self.username

迁移表: migrate.py

from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

from main import app
from models import db

# 需要导入需要迁移的数据表, 否则不会生成表
from models.user import UserModel

manager = Manager(app)
# 生成迁移文件
migrate = Migrate(app, db)
# 添加迁移命令: db 时迁移时的参数, MigrateCommand是命令
manager.add_command('db', MigrateCommand)


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

执行迁移的命令

# 执行迁移命令
python migrate.py db init
python migrate.py db migrate
python migrate.py db upgrade

连接到一起

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SECRET_KEY'] = '123456'
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:204348@localhost:3306/jiyunstus'
# 协议:mysql+pymysql
# 用户名:root
# 密码:204348
# IP地址:localhost
# 端口:3306
# 数据库名:jiyunstus # 这里的数据库需要提前建好
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
db=SQLAlchemy(app)

# 新建表User
class User(db.Model):
    __tablename__='users'
    id=db.Column(db.Integer, primary_key=True)
    username=db.Column(db.String(64), unique=True, index=True) #索引
    email = db.Column(db.String(64),unique=True)
    pswd = db.Column(db.String(64))
    role_id=db.Column(db.Integer, db.ForeignKey('roles.id')) # 外键

    def __repr__(self):
        return self.username

if __name__=='__main__':
    db.run()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929141.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号