这篇文章主要介绍的是数据库的增删改查操作,无多余好说的。
python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
from flask_migrate import Migrate
app = Flask(__name__)
# 本地基础信息的主机名
HOSTNAME = "127.0.0.1"
# mysql端口号
PORT = "3306"
# 账号
USERNAME = "root"
# 密码
PASSWORD = "admin123"
# 数据库名
DATABASE = "flasklearn"
# 将相关的配置挂载app.config中
app.config[
'SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8"
# SQLAlchemy会加载app中的配置
db = SQLAlchemy(app)
migrate = Migrate(app,db)
# 测试数据库是否链接成功
"""
with app.app_context():
with db.engine.connect() as conn:
# 使用 text() 函数将字符串转换为可执行对象
rs = conn.execute(text("SELECT 1"))
print(rs.fetchone())
#日志中出现 (1,) 代表数据库连接成功
"""
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(100), nullable=False)
class Message(db.Model):
__tablename__ = 'message'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
text = db.Column(db.String(100), nullable=False)
contnet = db.Column(db.String(100), nullable=False)
image=db.Column(db.String(255),nullable=False)
# # 执行所有的模型,来创建数据库
# with app.app_context():
# db.create_all()
# 这个如果上面的模型新增了一个字段的话这个表是不会发生变化的,数据库表是不会发生变化,但是新增的模型会添加到数据库中
# 上面的了解即可
# 需要了解和掌握下面的方式
# pip install flask-migrate
# migrate = Migrate(app,db)
# 创建数据库的三个步骤
# 1. flask db init 只需要执行一次
# 2. flask db migrate 识别ORM模型的改变,生成迁移脚本
# 3. flask db upgrade 运行迁移脚本同步到数据库中
# 如果字段发生变化,只需要执行后面两个步骤就可以了
@app.route('/')
def hello_world():
return 'Hello World!'
# 添加用户的操作
@app.route('/user/add')
def addUser():
user=User(username="张三",password="123456")
db.session.add(user) # 添加这个模型对象
db.session.commit() # 提交要添加的数据
return "添加用户成功"
# 修改用户的操作
@app.route('/user/update')
def updateUser():
# 拿到这个用户的信息
user = User.query.filter_by(username="张三").first()
# 完成赋值操作
user.password = "111"
db.session.commit()
return '修改用户成功'
# 查找数据库用户信息
@app.route('/user/query')
def searchUser():
# 通过get的id的方式进行查询
# user = User.query.get(1)
# print(user)
# print(user.username)
# print(user.password)
# 通过filter_by
users = User.query.filter_by(username="张三")
for user in users:
print(user.username)
return "查找用户成功"
# 删除数据库某条信息
@app.route('/user/delete')
def deleteUser():
user =User.query.get(1)
db.session.delete(user)
db.session.commit()
return "删除用户成功"
if __name__ == '__main__':
app.run()
增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。
增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。
增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。
增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。