IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Flask-SQLAlchemy(四)连接mysql并运行生成数据表 -> 正文阅读

[Python知识库]Flask-SQLAlchemy(四)连接mysql并运行生成数据表

一、配置文件settings.py

创建配置文件以连接本地mysql:

# mysql setting
class MySQLConfig(object):

    DEBUG = True
    SECRET_KEY = "your_password"
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{username}:{password}@{ipaddress}:{port}/{database}".format(username="root", password=SECRET_KEY, ipaddress="127.0.0.1", port="3306", database="mall")
    SQLALCHEMY_TRACK_MODIFICATIONS = True  # 动态追踪修改设置
    SQLALCHEMY_ECHO = True

二、在models.py中建表

如何映射关系请参考前三篇文章,这里截取一个网络商城项目部分代码为例:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy() # 创建db对象

class User(db.Model):
    __tablename__ = "user"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    _id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    account = db.Column(db.String(11), unique=True)
    password = db.Column(db.String(64))
    avatar = db.Column(db.String(256))
    age = db.Column(db.Integer)
    idCard = db.Column(db.String(18))
    gneder = db.Column(db.String(2))
    createTime = db.Column(db.DateTime)
    loginTime = db.Column(db.DateTime)
    logoutTime = db.Column(db.DateTime)
    balance = db.Column(db.Float(10), default=0)

    vip = db.Column(db.Integer, db.ForeignKey("vip._id"))

    def __repr__(self):
        return "User:%s" % self.name


goodsCourt = db.Table("goodsCourt",
                      db.Column("goods_id", db.Integer, db.ForeignKey("goods._id")),
                      db.Column("court_id", db.Integer, db.ForeignKey("court._id"))
                      )


class Court(db.Model):
    __tablename__ = "court"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    _id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user._id'))
    number = db.Column(db.Integer, default=0)  # 记录商品种类
    goods = db.relationship("Goods", secondary=goodsCourt, backref=db.backref("court", lazy="dynamic"), lazy="dynamic")


class Address(db.Model):
    __tablename__ = "address"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    _id = db.Column(db.Integer, primary_key=True)
    province = db.Column(db.String(18))
    town = db.Column(db.String(18))
    county = db.Column(db.String(18))
    detail = db.Column(db.String(200))
    user_id = db.Column(db.Integer, db.ForeignKey("user._id"))

    def __repr__(self):
        return "Address:%s" % self.detail
        # ..................

三、app.py:

from flask import Flask
from models import *
from settings import *

app = Flask(__name__)
app.config.from_object(MySQLConfig)

with app.app_context():
    db.init_app(app)
    db.create_all() # 创建表

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

四、在mysql中创建数据库mall:

这里创建的数据库即配置文件settings.py中的SQLALCHEMY_DATABASE_URI中的database的名字。

五、运行app.py

运行后在Navicat中刷新即可看到mall从空添加了13张表
运行后的数据库mall

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:27:16  更:2022-03-10 22:27:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:24:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码