以下是一個(gè)簡單的示例代碼,可以在 Flask 中使用 SQLAlchemy 庫來實(shí)現(xiàn)對(duì) MySQL 數(shù)據(jù)庫的增刪改查:
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/dbname'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
email = db.Column(db.String(50), unique=True)
password = db.Column(db.String(50))
def __init__(self, name, email, password):
self.name = name
self.email = email
self.password = password
@app.route('/users', methods=['POST'])
def create_user():
data = request.get_json()
name = data['name']
email = data['email']
password = data['password']
new_user = User(name, email, password)
db.session.add(new_user)
db.session.commit()
return jsonify({'message': 'User created successfully!'})
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
output = []
for user in users:
user_data = {}
user_data['id'] = user.id
user_data['name'] = user.name
user_data['email'] = user.email
user_data['password'] = user.password
output.append(user_data)
return jsonify({'users': output})
@app.route('/users/<id>', methods=['GET'])
def get_user(id):
user = User.query.get(id)
if not user:
return jsonify({'message': 'User not found!'})
user_data = {}
user_data['id'] = user.id
user_data['name'] = user.name
user_data['email'] = user.email
user_data['password'] = user.password
return jsonify({'user': user_data})
@app.route('/users/<id>', methods=['PUT'])
def update_user(id):
user = User.query.get(id)
if not user:
return jsonify({'message': 'User not found!'})
data = request.get_json()
user.name = data['name']
user.email = data['email']
user.password = data['password']
db.session.commit()
return jsonify({'message': 'User updated successfully!'})
@app.route('/users/<id>', methods=['DELETE'])
def delete_user(id):
user = User.query.get(id)
if not user:
return jsonify({'message': 'User not found!'})
db.session.delete(user)
db.session.commit()
return jsonify({'message': 'User deleted successfully!'})
if __name__ == '__main__':
app.run(debug=True)
在上面的示例代碼中,我們定義了一個(gè)名為 User
的數(shù)據(jù)模型,然后在 Flask 中創(chuàng)建了五個(gè)路由,分別用于創(chuàng)建用戶、獲取所有用戶、獲取單個(gè)用戶、更新用戶和刪除用戶。在每個(gè)路由中,我們都使用 SQLAlchemy 對(duì)數(shù)據(jù)庫進(jìn)行操作。需要注意的是,在使用 SQLAlchemy 時(shí),我們需要在 Flask 應(yīng)用中先定義數(shù)據(jù)庫連接信息和數(shù)據(jù)模型。
使用 MySQL cursor 也可以直接執(zhí)行 SQL 命令來實(shí)現(xiàn)對(duì) MySQL 數(shù)據(jù)庫的增刪改查。以下是一個(gè)簡單的示例代碼,可以使用 MySQL cursor 來實(shí)現(xiàn)對(duì) MySQL 數(shù)據(jù)庫的增刪改查:文章來源:http://www.zghlxwxcb.cn/news/detail-519619.html
import mysql.connector
# 連接 MySQL 數(shù)據(jù)庫
mydb = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="dbname"
)
# 創(chuàng)建 MySQL cursor
mycursor = mydb.cursor()
# 插入數(shù)據(jù)
sql = "INSERT INTO users (name, email, password) VALUES (%s, %s, %s)"
val = ("John", "john@example.com", "password123")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
# 查詢數(shù)據(jù)
mycursor.execute("SELECT * FROM users")
myresult = mycursor.fetchall()
for x in myresult:
print(x)
# 更新數(shù)據(jù)
sql = "UPDATE users SET name = %s WHERE email = %s"
val = ("Mike", "john@example.com")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record(s) updated")
# 刪除數(shù)據(jù)
sql = "DELETE FROM users WHERE email = %s"
val = ("john@example.com",)
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")
在上面的示例代碼中,我們首先連接到 MySQL 數(shù)據(jù)庫,然后創(chuàng)建了一個(gè) MySQL cursor 對(duì)象。接下來,我們可以使用 execute()
函數(shù)來執(zhí)行 SQL 命令,例如插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)等。需要注意的是,在執(zhí)行 SQL 命令后,我們需要使用 commit()
函數(shù)來提交事務(wù)的更改。文章來源地址http://www.zghlxwxcb.cn/news/detail-519619.html
到了這里,關(guān)于flask 框架中對(duì) MySQL 數(shù)據(jù)庫進(jìn)行增刪改查的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!