本文实现了flask对于数据的增加操作。
一、搭建准备
初始库准备:
pip install Flask Flask-SQLAlchemy
pip install pymysql
pip install mysqlclient
python版本:3.10.6
博主使用的MYSQL 8.0
二、源代码展示
(一)使用函数 with app.app_context():直接添加:
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()
app = Flask(__name__)
# 请替换下面的连接字符串为实际的用户名、密码、主机和数据库名
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/operationdb'
db = SQLAlchemy(app)
class TableTest(db.Model):
__tablename__ = 'table_test'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
sex = db.Column(db.String(255))
def as_dict(self):
return {'id': self.id, 'name': self.name, 'sex': self.sex}
@app.route('/tabletest', methods=['GET'])
def get_tabletest():
records = TableTest.query.all()
return jsonify([record.as_dict() for record in records])
with app.app_context():
# 添加数据
new_data = TableTest(id=4, name='陈六', sex='男')
db.session.add(new_data)
db.session.commit()
if __name__ == '__main__':
app.run(debug=True)
(二)使用GET形式增加数据
添加add_entry函数:
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()
app = Flask(__name__)
# 请替换下面的连接字符串为实际的用户名、密码、主机和数据库名
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/operationdb'
db = SQLAlchemy(app)
class TableTest(db.Model):
__tablename__ = 'table_test'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
sex = db.Column(db.String(255))
def as_dict(self):
return {'id': self.id, 'name': self.name, 'sex': self.sex}
@app.route('/tabletest', methods=['GET'])
def get_tabletest():
records = TableTest.query.all()
return jsonify([record.as_dict() for record in records])
@app.route('/add', methods=['GET'])
def add_entry():
# 从GET请求的查询参数中获取数据
id = request.args.get('id')
name = request.args.get('name')
sex = request.args.get('sex')
if id and name and sex:
new_data = TableTest(id=id, name=name, sex=sex)
# 增加异常处理
try:
db.session.add(new_data)
db.session.commit()
return "Data added successfully!", 200
except Exception as e:
db.session.rollback()
return str(e), 500
else:
return "Missing parameters", 400
if __name__ == '__main__':
app.run(debug=True)
三、使用效果
使用(一)方法,适合结合excel表等相关功能,进行批量数据上载。运行即可添加至数据库。
使用(二)方法:
传参链接:http://localhost:5000/add?id=5&name=李七&sex=女
访问函数后,触发新增数据函数,添加参数中值至数据库!适合于结合网站使用。
添加后再进行数据查询:
http://localhost:5000/tabletest