Flask链接数据库

本文介绍了如何在Flask项目中链接MySQL数据库,包括安装必要的库、配置数据库连接、创建数据库和表,以及解决运行时警告的方法。通过示例代码展示了如何建立表并进行数据库操作。

Flask链接数据库

安装好mysql后,先整一个flask模板

  1. 先用PyCharm打开一个flask项目
    在这里插入图片描述
    链接数据库需要python的一个库‘flask_sqlalchemy’
from flask_sqlalchemy import SQLAlchemy
  1. 首先建立一个数据库
db = SQLAlchemy(app)

这时候运行一下会有两个警告
在这里插入图片描述
所以这时候需要配置一下这两个东西

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@127.0.0.1/flask_demo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

第一个的格式是 mysql+pymysql://数据库名字:数据库密码@127.0.0.1/本次建立库的名字,配置完这两句话后就不会弹出警告了。
在配置中我们使用了pymysql,所以也需要在开头调用一下

import pymysql
pymysql.install_as_MySQLdb()
  1. 建立表
    接下来建立我们需要的表
class Role(db.Model):
    __tablename__ = 'roles'
    #db.column 表示一个字段
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(16),unique=True)

如果想建表的话就必须调用一下db.Model
其中__tablename__ 表示的是表的名字
id和name是我们表中的两个字段,其中id为主键

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer,primary_key=True)
    #如果不想出现两个张三,就unique=True
    name = db.Column(db.String(16),unique=True)
    #db.ForeignKey('roles.id')表示是外键
    role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))
  1. 打开mysql 建立表
    create database flask_demo1 charset=utf8在这里插入图片描述
    记得得加utf8,因为我们在数据库中得用到中文,
    用use进入建立的数据库
    在这里插入图片描述
    查看一下表
    在这里插入图片描述
    现在依然是空的,因为我们还没有建立表
    建立一下表
db.create_all()

在这里插入图片描述
成功连接数据库。

全部的代码如下:

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@127.0.0.1/flask_demo1'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class Role(db.Model):
    __tablename__ = 'roles'
    #db.column 表示一个字段
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(16),unique=True)

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer,primary_key=True)
    #如果不想出现两个张三,就unique=True
    name = db.Column(db.String(16),unique=True)
    #db.ForeignKey('roles.id')表示是外键
    role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值