flask pymysql 封装 但不使用orm
时间: 2023-12-13 07:04:44 浏览: 133
好的,你想了解如何使用 Flask 和 PyMySQL 进行封装,但是不使用 ORM,对吗?
首先,你需要安装 Flask 和 PyMySQL:
```
pip install Flask
pip install PyMySQL
```
接下来,你可以创建一个名为 `db.py` 的模块,其中包含以下内容:
```python
import pymysql.cursors
def get_db():
return pymysql.connect(
host='localhost',
user='your_user_name',
password='your_password',
db='your_database_name',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
def query_db(query, args=(), one=False):
conn = get_db()
cur = conn.cursor()
cur.execute(query, args)
rv = cur.fetchall()
cur.close()
conn.close()
return (rv[0] if rv else None) if one else rv
def insert_db(table, fields=(), values=()):
conn = get_db()
cur = conn.cursor()
query = "INSERT INTO {} ({}) VALUES ({})".format(table, ', '.join(fields), ', '.join(['%s' for i in range(len(values))]))
cur.execute(query, values)
conn.commit()
cur.close()
conn.close()
```
这个 `db.py` 模块定义了三个主要的函数:
- `get_db()`:用于获取一个数据库连接对象。
- `query_db()`:用于执行 SQL 查询,并返回结果。
- `insert_db()`:用于向数据库中插入数据。
现在,你可以在 Flask 应用程序中使用这些函数来访问数据库。例如,下面是一个简单的 Flask 应用程序,它使用 `query_db()` 函数从数据库中获取一些数据:
```python
from flask import Flask, jsonify
from db import query_db
app = Flask(__name__)
@app.route('/users')
def get_users():
users = query_db('SELECT * FROM users')
return jsonify(users)
if __name__ == '__main__':
app.run()
```
在这个例子中,我们使用 Flask 的 `jsonify()` 函数将查询结果转换为 JSON 格式,并返回给客户端。
希望这可以回答你的问题。如果你还有其他问题,请随时问我。
阅读全文