八、使用flask-SQLAlchemy创建模型与表的映射

1、Flask连接MySQL数据库

想使用flask中的SQLAlchemy操作数据库,首先要能连接上数据库,这里咱们新建一个config.py的配置文件,用来配置数据库连接,代码如下。

# encoding: utf-8
# dialect+driver://username:password@host:port/database
DIALECT = 'mysql'  # 要用的什么数据库
DRIVER = 'pymysql' # 连接数据库驱动
USERNAME = 'root'  # 用户名
PASSWORD ='root'  # 密码
HOST = 'localhost'  # 服务器
PORT ='3306' # 端口
DATABASE = 'db_demo2' # 数据库名

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False

这里配置好咱们的数据库连接。然后在app.py中导入咱们的数据库连接。代码如下。

# encoding: utf-8
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

db.create_all()

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

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

到这里咱们先测试运行一下,看不能不能连接上数据库。运行结果如下。


八、使用flask-SQLAlchemy创建模型与表的映射_第1张图片
image.png

有一个警告,求助下小伙伴,知道怎么解决吗?MySQL数据中的类型都改成utf8了。嗯,至少数据库是连接成功了。记得连接之前一定要先创建一个数据库。

create database db_demo2

2.使用flask-SQLAlchemy创建模型与表的映射

数据库连接已经创建好了,SQLAlchemy的实例也已经写好了,就是db。然后定义一个类。

class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)

这里咱们定义一个Article的类,继承自SQLAlchemy里面的Model。然后定义表名。

  • id,int类型,主键,自增长。
  • title varchar类型 长度100 非空
  • content Text类型 非空
    咱们先看下数据库。
    八、使用flask-SQLAlchemy创建模型与表的映射_第2张图片
    image.png

    执行show tables 可以看到还没有表。
    然后执行咱们的app.py,代码如下。
# encoding: utf-8
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)

db.create_all()

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

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

看下结果;


八、使用flask-SQLAlchemy创建模型与表的映射_第3张图片
image.png
show tables # 查看该数据库下所有的表
desc article # 查看article表下所有的字段及类型

可以看到,咱们的代码已经执行成功了。
Study hard and make progress every day.

更多学习资料请关注"爱游戏爱编程"。


八、使用flask-SQLAlchemy创建模型与表的映射_第4张图片
爱游戏爱编程.jpg

你可能感兴趣的:(八、使用flask-SQLAlchemy创建模型与表的映射)