Python Flask Web开发二:数据库创建和使用

前言

数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的需求。这里介绍:SQLAlchemy

一、SQLAlchemy安装

安装pymysql和SQLAlchemy,打开pycharm,打开终端,分别执行这两个命令

pip install pymysql
pip install SQLAlchemy

看到这样就是表示安装成功了

然后,执行这个命令检查SQLAlchemy是否正确安装,运行这个命令会输出版本号的。

python -c "import sqlalchemy; print(sqlalchemy.__version__)"

二、Flask-Migrate的安装和使用

Flask-Migrate是一个使用 Alembic 处理 Flask 应用程序的 SQLAlchemy 数据库迁移的扩展。数据库操作可通过 Flask 命令行界面进行。Flask-Migrate 是一个扩展,它以正确的方式配置 Alembic 以与 Flask 和 Flask-SQLAlchemy 应用程序配合使用。就实际的数据库迁移而言,一切都由 Alembic 处理,因此您可以获得完全相同的功能。

2.1、Flask-Migrate安装

使用pip安装,在开发工具的命令行里面执行

pip install Flask-Migrate

出现这样表示安装成功

2.2、Flask-Migrate使用

2.2.1、在__init__.py里面编写

# __init__.py 文件是一个特殊的文件,它在包的目录中起到了重要的作用
# 主要作用如下:
# 声明包:__init__.py 文件的存在将目录标识为一个包。它告诉 Python 解释器该目录是一个包,并且可以在该目录中使用包的相关功能。
# 初始化模块:__init__.py 文件可以包含初始化代码,当导入包时,这些代码将在包的命名空间中执行。这些初始化代码可以用于设置包的环境、导入子模块或执行其他必要的操作。
# 控制导入行为:__init__.py 文件可以控制包的导入行为。通过在 __init__.py 文件中定义 __all__ 变量,可以指定导入包时应该导入的模块列表。这样可以控制模块的可见性和公开的接口。
# 提供包级别的功能:__init__.py 文件可以包含包级别的变量、常量、函数或类,这些可以在包内的其他模块中使用。
from flask import Flask
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
from .config import Config


app = Flask(__name__)
app.config.from_object(Config)

db = SQLAlchemy(app)
migrate = Migrate(app, db)

2.2.2、在config.py里面编写

import os


class Config(object):
    BASE_DIR = os.path.abspath(os.path.dirname(__file__))
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    SQLALCHEMY_RECORD_QUERIES = True
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
                              'sqlite:///' + os.path.join(BASE_DIR, 'database.sqlite')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_ECHO = True

2.2.3、在models.py里面编写

单个点号(.)表示当前目录或当前模块

from . import db


class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(50), unique=True, nullable=False)
    password = db.Column(db.String(255), nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    name = db.Column(db.String(50), unique=True, nullable=False)
    created_at = db.Column(db.DateTime, nullable=False)

2.2.4、在app.py里面编写

from datetime import datetime
from flask import Flask, request, jsonify
from .Response.ResMsg import ResMsg
from .models import User

from . import app, db


@app.route("/login", methods=["POST", "GET"])
def login():
    # get username and password form json post
    username = request.json.get("username")
    password = request.json.get("password")
    if username == "admin" and password == "123456":

        # 假设登录成功后你已经获得了相应的用户名、密码和电子邮件
        username = "sandy"
        password = "123456"
        email = "sady@gmail.com"

        # 创建 User 对象并设置字段值
        new_user = User(
            username=username,
            password=password,
            email=email,
            name="Sandy",
            created_at=datetime.now()
        )

        # 将新用户对象添加到数据库会话中
        db.session.add(new_user)

        # 提交会话以保存更改到数据库
        db.session.commit()
        response = {"code": 200,
                    "msg": "登录成功",
                    }
        return jsonify(response)
    else:
        response = {"code": 400,
                    "msg": "登录失败",
                    }
        return jsonify(response)

2.2.5、db安装,创建迁移存储库,分别执行这两个命令

flask db init
flask db migrate -m "Initial migration."

这样就会在项目里面生成一个在 config.py里面写的database.sqlite数据库.

再在项目的终端里面执行下面命令,可以将迁移脚本描述的更改应用到您的数据库。

flask db upgrade

每次数据库模型更改时,请重复migrateupgrade命令。

三、创建数据表

3.1、运行:flask run

3.2、然后在rest-api.http文件里面编写这些代码,点击三角形运行

3.3、刷新,查看users表

⚠️注意:后面表里面有新增或者删除字段的还执行这两步就可以了

flask db migrate -m "说明"

flask db upgrade

恭喜你,到这里为止,你就成功搭建好数据库和管理功能了,咱们下一集见

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Flask框架中使用数据库的一种常见方式是通过ORM(对象关系映射)框架来操作数据库,比如使用SQLAlchemy。ORM框架可以帮助我们将数据库操作转化为面向对象的方式,而不需要直接使用SQL语句。 在使用Python Flask框架中的ORM框架SQLAlchemy进行数据库操作时,可以按照以下步骤进行: 1. 导入所需的模块和类,包括Flask和SQLAlchemy。 2. 创建一个Flask应用程序实例。 3. 配置数据库连接信息,包括数据库类型、用户名、密码、主机和端口等。 4. 创建一个数据库模型类,该类对应数据库中的表格,并定义各个字段的属性和关联关系。 5. 在应用程序中使用该模型类进行数据库操作,比如查询、插入、更新和删除等。 6. 在需要的时候提交或回滚事务。 以下是一个简单的示例代码,展示了如何在Python Flask框架中使用SQLAlchemy进行数据库操作: ``` # 导入所需的模块和类 from flask import Flask from flask_sqlalchemy import SQLAlchemy # 创建Flask应用程序实例 app = Flask(__name__) # 配置数据库连接信息 app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接信息' # 创建SQLAlchemy对象 db = SQLAlchemy(app) # 创建数据库模型类 class Movie(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) director = db.Column(db.String(50)) year = db.Column(db.Integer) # 在应用程序中使用模型类进行数据库操作 @app.route('/') def index(): # 查询电影列表 movies = Movie.query.all() return str(movies) # 启动应用程序 if __name__ == '__main__': app.run() ``` 在上述示例代码中,我们使用了SQLAlchemy对数据库进行操作。通过定义模型类Movie,并在应用程序中进行查询操作,可以获取到数据库中的电影列表。 需要注意的是,具体的数据库连接信息需要根据实际情况进行配置,比如数据库类型、用户名、密码、主机和端口等。 总结来说,在Python Flask框架中使用ORM框架SQLAlchemy可以帮助我们简化数据库操作,不需要直接使用SQL语句,而是通过定义模型类和使用ORM框架提供的方法来进行数据库操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值