flask+sqlalchemy(表建模&模建表)

目录

 

通过模型创建数据库表(也可以通过项目创建数据库,我就不多说了)

通过数据库创建表模型

附带记录


  • 通过模型创建数据库表(也可以通过项目创建数据库,我就不多说了)

首先环境要搭建好(requirements.txt),我使用的是python3.8版本

click==7.1.2
Flask==1.1.2
Flask-SQLAlchemy==2.4.4
greenlet==1.0.0
importlib-metadata==3.7.3
inflect==5.3.0
itsdangerous==1.1.0
Jinja2==2.11.3
MarkupSafe==1.1.1
PyMySQL==1.0.2
sqlacodegen==2.3.0
SQLAlchemy==1.3.22
typing-extensions==3.7.4.3
Werkzeug==1.0.1
zipp==3.4.1

然后创建或者覆盖app.py(具体如何操作看个人,也可以“则其善者而从之,其不善者而改之”)

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql

pymysql.install_as_MySQLdb()
app = Flask(__name__)

#配置数据库的地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3307/testsql?charset=utf8'
#跟踪数据库的修改 -->不建议开启,消耗性能
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

#数据库的模型 需要继承db.Model
class Users(db.Model):
    #定义表名
    __tablename__ = 'users'
    #定义字段:db.Column表示是一个字段
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(16), unique=True)
    pwd = db.Column(db.String(32))

class Userinfo(db.Model):
    __tablename__ = 'userinfo'
    id = db.Column(db.Integer, primary_key=True)
    # db.ForeignKey('users.id')用于表示外键
    userid = db.Column(db.Integer, db.ForeignKey('users.id'))
    info = db.Column(db.String(500))



@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':

    #删除表
    db.drop_all()
    #创建表
    db.create_all()


    app.run()



OK,运行项目,去看数据库就已经存在这两个表了

 

  • 通过数据库创建表模型

在控制台(Terminal)执行以下语句:

sqlacodegen mysql+pymysql://root:123456@localhost:3307/la80?charset=utf8 --outfile models.py

执行成功后在你的目录下就有了一个models.py文件了,这就是表模型

  • 附带记录

pycharm导出requirements.txt,在控制台(Terminal)执行以下语句:

pip freeze>requirements.txt

通过requirements.txt安装包(我使用的豆瓣源,大家可以根据自己的习惯设置其他源即可),在控制台(Terminal)执行以下语句:

pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值