创建表
| from flask import Flask, render_template |
| from flask_sqlalchemy import SQLAlchemy |
| |
| app = Flask(__name__) |
| |
| HOSTNAME = "127.0.0.1" |
| PORT = 3306 |
| USERNAME = "root" |
| PASSWORD = "123456" |
| DATABASE = "db_test" |
| app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4" |
| |
| db = SQLAlchemy(app) |
| |
| 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) |
| |
| |
| with app.app_context(): |
| db.create_all() |
| |
| @app.route('/') |
| def hello_world(): |
| return 'Hello World!' |
| |
| if __name__ == '__main__': |
| app.run() |
- 查看数据库,表创建成功

crud操作
| |
| |
| @app.route("/user/add") |
| def add_user(): |
| |
| user = User(username="张三", password='123456') |
| |
| db.session.add(user) |
| |
| db.session.commit() |
| return "用户创建成功!" |
| @app.route("/user/query") |
| def query_user(): |
| |
| |
| |
| |
| |
| |
| users = User.query.filter_by(username="张三") |
| for user in users: |
| print(f"{user.username}---{user.password}") |
| return "数据查找成功!" |
| @app.route("/user/update") |
| def update_user(): |
| user = User.query.filter_by(username="张三").first() |
| |
| user.password = "222222" |
| db.session.commit() |
| return "数据修改成功!" |
| @app.route('/user/delete') |
| def delete_user(): |
| |
| user = User.query.get(1) |
| |
| db.session.delete(user) |
| |
| db.session.commit() |
| return "数据删除成功!" |
设置外键
| class Article(db.Model): |
| __tablename__ = "article" |
| id = db.Column(db.Integer, primary_key=True, autoincrement=True) |
| title = db.Column(db.String(200), nullable=False) |
| content = db.Column(db.Text, nullable=False) |
| # 添加作者的外键 |
| author_id = db.Column(db.Integer, db.ForeignKey("user.id")) |
| # backref:会自动的给User模型添加个articles的属性,用来获取文章列表 |
| author = db.relationship("User", backref="articles") |
| |
| # 创建表 |
| with app.app_context(): |
| db.create_all() |
| |
| # 添加文章 |
| @app.route("/article/add") |
| def article_add(): |
| article1 = Article(title="Flask学习大纲", content="Flaskxxxx") |
| article1.author = User.query.get(2) |
| |
| article2 = Article(title="Django学习大纲", content="Django最全学习大纲") |
| article2.author = User.query.get(2) |
| # 添加到session中 |
| db.session.add_all([article1, article2]) |
| # 同步session中的数据到数据库中 |
| db.session.commit() |
| return "文章添加成功!" |
| |
| # 查找用户下的文章 |
| @app.route("/article/query") |
| def query_article(): |
| user = User.query.get(2) |
| for article in user.articles: |
| print(article.title) |
| # print(f"{article.title}---{article.author}") |
| return "文章查找成功!" |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-03-20 oracle安装