Python flask怎么连接MySQL?

在Python中连接MySQL并使用模型创建新的表,通常我们会使用ORM(对象关系映射)库,比如SQLAlchemy或者Django ORM,它们允许我们定义Python类来映射到数据库中的表,并通过这些类进行数据库操作。下面是一个使用SQLAlchemy的例子。(flask可以使用)

首先,你需要安装必要的库:

```bash

pip install sqlalchemy pymysql

```

然后,你可以定义一个模型(通常是一个Python类),该类继承自SQLAlchemy的`Base`类,并定义表的结构:

```python

from sqlalchemy import Column, Integer, String, create_engine

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import sessionmaker

定义基类

Base = declarative_base()

定义模型类

class User(Base):

tablename = 'users'

id = Column(Integer, primary_key=True)

name = Column(String)

email = Column(String)

def repr(self):

return f"<User(id={self.id}, name={self.name}, email={self.email})>"

创建数据库连接

engine = create_engine('mysql+pymysql://username:password@localhost:3306/dbname')

创建所有表

Base.metadata.create_all(engine)

创建会话

Session = sessionmaker(bind=engine)

session = Session()

示例:添加一个新的用户

new_user = User(name='John Doe', email='johndoe@example.com')

session.add(new_user)

session.commit()

关闭会话

session.close()

```

在上面的代码中:

  • 我们导入了必要的SQLAlchemy模块和`pymysql`,后者是一个Python的MySQL客户端。

  • 我们定义了`User`类,它映射到名为`users`的MySQL表。

  • 我们创建了数据库引擎`engine`,并指定了连接MySQL的URI(用户名、密码、主机和数据库名)。

  • 我们调用了`Base.metadata.create_all(engine)`来创建所有定义的表。

  • 我们创建了一个会话`session`,它用于与数据库进行交互。

  • 示例中,我们添加了一个新用户到数据库中,并提交事务。

  • 最后,我们关闭了会话。

请确保将`username`、`password`、`localhost`、`3306`和`dbname`替换为你自己的MySQL数据库的实际凭证和设置。

此外,如果你使用的是Django框架,Django ORM提供了类似的功能,并且与Django的其他组件(如视图、模板等)紧密集成。使用Django ORM时,你需要遵循Django的项目和应用结构,并在应用的`models.py`文件中定义模型。然后,Django的迁移系统可以为你创建和管理数据库表。

相关推荐
多米Domi01113 小时前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
人工智能训练19 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming16819 小时前
python性能优化方案研究
python·性能优化
码云数智-大飞20 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
biuyyyxxx21 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模21 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
小鸡吃米…1 天前
机器学习中的代价函数
人工智能·python·机器学习
Li emily1 天前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_561359671 天前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
Ulyanov1 天前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲