Python 实战 · 从 0 到 1 搭建直播视频平台
Barry
某上市公司技术研发总监
3724 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
Python 实战 · 从 0 到 1 搭建直播视频平台
15
15
1.0x
00:00/00:00
登录|注册

23|数据库应用(三):项目数据库配置实战

你好,我是 Barry。
在上节课,我们实现了数据库表的创建,也实现了项目和数据库的联动,这就相当于架设好了项目和数据库的桥梁。不过,我们前面都做的都是单点功能的实践。
为了让你加深理解,今后轻松应用数据库来完成项目的数据管理和业务处理,接下来的两节课我会带你完成数据库配置,并结合项目综合应用数据库。
在学习数据库配置前,我们需要先来了解一下项目层级关系。只有明确项目的层级关系,数据库配置的脉络才会更加清晰,也能为我们之后的项目实战做好铺垫。

项目层级框架

我们先从项目层级框架开始说起。Flask 项目通常分为三层,我们分别来看看。
第一层是前端展示层,包括 HTML、CSS、JS 等文件,用于展示用户界面和与用户交互。这也是直接与用户接触的内容。
第二层是后端业务逻辑层,用来获取数据库的数据并进行业务逻辑处理,最后把处理好的数据交给前端去渲染展示。这层通常会涉及到 ORM 对象关系映射层,用来和数据库交互。
第三层就是数据库层,作用是存储和管理数据,通常会用到 MySQL 这样的关系型数据库。
当然,你也要明确一个 Flask 项目并不是都需要分为三层。具体的层级分布取决于项目的复杂度和需求。有些项目可能只需要一个简单的展示层和业务逻辑层,而有些项目可能需要更多的层次,才能支持更复杂的业务逻辑和数据管理。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了在Flask项目中进行数据库配置的实际操作步骤。首先,文章从项目层级框架出发,介绍了Flask项目通常分为前端展示层、后端业务逻辑层和数据库层。然后,详细讲解了数据库的配置,包括数据库核心配置项和通过SQLAlchemy实现ORM应用。接着,文章介绍了建立数据库表的步骤,包括创建模型基类和用户信息表,并展示了生成数据库表的最后一个环节。通过实际代码示例,读者可以学习如何在Flask项目中应用数据库,包括管理命令、数据库迁移、创建数据库表等具体步骤和注意事项。整体而言,本文是一篇非常实用的技术文章,对于想要学习如何在Flask项目中应用数据库的读者来说具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 实战 · 从 0 到 1 搭建直播视频平台》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • Forest
    在项目开发中,生产环境的数据库肯定是独立的,开发和测试可以使用同一个数据库;在开发和测试过程中,会添加很多测试数据,对于生产环境而言,这部分是脏数据且没有任何实际意义

    作者回复: 总结的非常准确,感谢分享,为你点赞!

    2023-06-20归属地:四川
    1
  • lightwolf
    老师都正常执行了, 但是执行完成db.create_all()之后, 数据库中为什么没有表

    作者回复: 这个需要检查一下,确保你使用的数据库引擎支持 Flask-SQLAlchemy。例如,SQLite 数据库在某些情况下可能不会立即显示新创建的表。

    2024-01-17归属地:安徽
    2
  • Geek_d26f93
    raise RuntimeError( RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set.这个错误怎么办

    作者回复: 你的 Flask-SQLAlchemy 配置中,必须设置 SQLALCHEMY_DATABASE_URI 或 SQLALCHEMY_BINDS 中的一个。如果你想使用 SQLALCHEMY_BINDS,你可以像这样设置: from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_BINDS'] = {'other': 'sqlite:////tmp/other.db'} # 请替换为你的数据库 URI db = SQLAlchemy(app) other 是数据库的别名,你可以通过这个别名来访问这个数据库。

    2024-01-14归属地:内蒙古
  • Geek_d26f93
    Traceback (most recent call last): File "D:\environment\Python\Miniconda3\envs\venv2\lib\site-packages\flask\cli.py", line 219, in locate_app __import__(module_name) File "D:\environment\Python\pythonProject\First_Flask\app.py", line 2, in <module> from flask_script import Manager File "D:\environment\Python\Miniconda3\envs\venv2\lib\site-packages\flask_script\__init__.py", line 15, in <module> from flask._compat import text_type ModuleNotFoundError: No module named 'flask._compat' 请问我代码遗漏了哪部分会出现这个错误

    作者回复: 从你给出的错误信息来看,问题出现在你尝试从flask_script模块导入Manager时。错误信息显示,Python无法找到名为flask._compat的模块。 这个问题可能是由于你使用的Flask版本与Flask-Script版本不兼容导致的。flask._compat是在Flask 1.0之后被移除的,而Flask-Script 2.0及更高版本需要Flask 1.0或更高版本。

    2024-01-13归属地:内蒙古
  • Aegean Sea
    (venv2) PS D:\environment\Python\pythonProject\First_Flask> flask db init Error: While importing 'app', an ImportError was raised: Traceback (most recent call last): File "D:\environment\Python\Miniconda3\envs\venv2\lib\site-packages\flask\cli.py", line 219, in locate_app __import__(module_name) File "D:\environment\Python\pythonProject\First_Flask\app.py", line 2, in <module> from flask_script import Manager File "D:\environment\Python\Miniconda3\envs\venv2\lib\site-packages\flask_script\__init__.py", line 15, in <module> from flask._compat import text_type ModuleNotFoundError: No module named 'flask._compat' Usage: flask [OPTIONS] COMMAND [ARGS]... Try 'flask --help' for help. Error: No such command 'db'. 老师求解,试了很多方法都行不通

    作者回复: 这个是你缺失db,你的代码有遗漏,找不到就会报错: 安装成功之后我们还需要完成实例化,实例化之后才能将一些全局配置应用到具体的数据库操作中。: from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app) 从这一部分往下顺。

    2023-10-28归属地:广东
  • Aegean Sea
    ModuleNotFoundError: No module named 'flask._compat' Usage: flask [OPTIONS] COMMAND [ARGS]... Try 'flask --help' for help. Error: No such command 'db'. 老师求解。试了很多方法行不通

    作者回复: 你的代码写的不全,db找不到,你会发现我在地下写的代码中有: from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app)。 //这个需要有 你缺失这部分,需要补充上

    2023-10-28归属地:广东
  • Geek_00c9c4
    你好,项目中使用的每个包的版本是多少呀(能否发一下你用的版本)?执行flask db init ,报这个错误, Traceback (most recent call last): File "/Users/kevin/.pyenv/versions/3.12.0/bin/flask", line 5, in <module> from flask.cli import main File "/Users/kevin/.pyenv/versions/3.12.0/lib/python3.12/site-packages/flask/__init__.py", line 19, in <module> from jinja2 import Markup, escape ImportError: cannot import name 'Markup' from 'jinja2' (/Users/kevin/.pyenv/versions/3.12.0/lib/python3.12/site-packages/jinja2/__init__.py)

    作者回复: 在课程介绍中的 框架版本中有详细的介绍。可直接参考。

    2023-10-19归属地:上海
  • Geek_5cb928
    在执行flask shell后面的db相关命令时报错,name 'db' is not defined 发现造成的原因是教程里面用到的pycharm会自动配置context,用vscode所以遇到了这个问题。 修复如下 在app.py (manager.py)下面定义context @app.shell_context_processor def make_shell_context(): return {'db': db} 供大家参考

    作者回复: 感谢同学分享,为你点赞,后端开发过程中还是建议大家使用PyCharm更方便一些。

    2023-08-29归属地:广东
  • 蜡笔小新爱看书
    db.Column,输入.pycharm带不出来Column的提示,是什么原因?

    作者回复: 对于代码提示设置问题,你确保 "SQLAlchemy" 库被正确识别并在代码提示列表中可用。如果它没有被列出,你可以点击 "+" 号添加它。如果 "SQLAlchemy" 已经在列表中,请确保它的版本与你的项目兼容。 你可以尝试一下,如果有问题可以继续追评。

    2023-08-17归属地:广东
    2
  • Geek_7cc417
    我想问一下老师,在本次项目中,我们数据库设计只有一个用户信息表就够了吗?我想学习一下数据库怎么设计的,来修改增加去做个毕业设计不知道能不能行

    作者回复: 如果是毕业设计的话单点功能是不够的,如果只有用户纬度是不可以的,我们课程中的项目实现是完整的,不单单只有用户表一个模块。我之后会上传完整的代码你可以参考一下,整体实现起来功能还是非常多的,你的毕业设计应该不需要这么多功能,满足增删改查就行应该。有问题可以再回评。

    2023-07-16归属地:广东
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部