写出@app.route('/api/tsjyQuery/',methods=['POST']) def post_tsjyQuery_data(): id = request.json.get('id') name = request.json.get('name') press = request.json.get('press') author = request.json.get('author') conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123456', database='图书馆', charset='utf8mb4', cursorclass=cursors.DictCursor) cursor = conn.cursor() sql = 'select * from book where name like "%%"%s"%%" and press like "%%"%s"%%" and author like "%%"%s"%%"' try: cursor.execute(sql, (name, press, author)) data = cursor.fetchall() return jsonify({'result': data, 'code': 200}) except: return jsonify({'code': 404})这段代码的功能原理
时间: 2024-04-27 17:24:19 浏览: 179
这段代码的功能是实现一个接口,通过POST请求传递参数(id, name, press, author),然后在MySQL数据库中查询符合条件的图书信息。其中,使用了模糊查询(like)来匹配name、press、author信息。最终,将查询结果通过JSON格式返回给调用者,包括查询结果和状态码(200表示成功,404表示失败)。
相关问题
#任务8:当前借阅界面,管理员用户,返回book表中已借阅、归还中、下架的图书数据;普通用户返回对应的借阅图书数据 # 接收数据{'user':''},返回json数据{'result':data,'code':200} @app.route('/api/dqjy/',methods=['POST']) def post_dqjy_data(): return {'result':data,'code':200} #任务9:当前借阅界面,归还按钮 # 接收数据{'id':''},返回json数据{'code':200} @app.route('/api/dqjygh/',methods=['POST']) def post_dqjygh_data(): return {'result':data,'code':200} #任务10:当前借阅界面,管理员归还确认按钮,完成record表的数据插入,同时更新book的信息 # 接收数据{'id':''},返回json数据{'code':200} @app.route('/api/dqjyghqr/',methods=['POST']) def post_dqjyghqr_data(): return {'result':data,'code':200} #任务11:借阅记录界面,更加普通用户或管理员查询record表中的数据,接收参数{'borrower':''},返回json数据{'result':data,'code':200} @app.route('/api/jyjl/',methods=['POST']) def post_jyjl_data(): return {'result':data,'code':200} if __name__ == '__main__': app.run(debug=True) 完整代码输出
抱歉,我是一个语言模型AI,我无法输出完整代码,但是我可以给你一些参考。你可以根据任务的要求,在Flask框架下,完成对应的路由函数和数据库操作。下面是一个简单的示例代码,仅供参考:
```python
from flask import Flask, request, jsonify
import pymysql
app = Flask(__name__)
db = pymysql.connect("localhost", "root", "password", "database_name")
# 任务8:获取当前借阅图书数据
@app.route('/api/dqjy/', methods=['POST'])
def post_dqjy_data():
user = request.json.get('user')
cursor = db.cursor()
if user == 'admin':
# 获取已借阅、归还中、下架的图书数据
sql = "SELECT * FROM book WHERE status IN ('borrowed', 'returning', 'offline')"
else:
# 获取普通用户的借阅图书数据
sql = "SELECT * FROM book WHERE borrower = '{}'".format(user)
cursor.execute(sql)
data = cursor.fetchall()
cursor.close()
return jsonify({'result': data, 'code': 200})
# 任务9:归还按钮
@app.route('/api/dqjygh/', methods=['POST'])
def post_dqjygh_data():
book_id = request.json.get('id')
cursor = db.cursor()
# 将图书状态改为 returning
sql = "UPDATE book SET status = 'returning', borrower = NULL WHERE id = {}".format(book_id)
cursor.execute(sql)
db.commit()
cursor.close()
return jsonify({'code': 200})
# 任务10:管理员归还确认按钮
@app.route('/api/dqjyghqr/', methods=['POST'])
def post_dqjyghqr_data():
book_id = request.json.get('id')
cursor = db.cursor()
# 将图书状态改为 available
sql = "UPDATE book SET status = 'available' WHERE id = {}".format(book_id)
cursor.execute(sql)
# 插入借阅记录到 record 表中
sql = "INSERT INTO record(book_id, borrower, return_date) VALUES ({}, NULL, NOW())".format(book_id)
cursor.execute(sql)
db.commit()
cursor.close()
return jsonify({'code': 200})
# 任务11:借阅记录界面
@app.route('/api/jyjl/', methods=['POST'])
def post_jyjl_data():
borrower = request.json.get('borrower')
cursor = db.cursor()
if borrower == 'admin':
# 获取所有借阅记录
sql = "SELECT r.id, b.title, r.borrower, r.borrow_date, r.return_date FROM record r JOIN book b ON r.book_id = b.id"
else:
# 获取普通用户的借阅记录
sql = "SELECT r.id, b.title, r.borrow_date, r.return_date FROM record r JOIN book b ON r.book_id = b.id WHERE r.borrower = '{}'".format(borrower)
cursor.execute(sql)
data = cursor.fetchall()
cursor.close()
return jsonify({'result': data, 'code': 200})
if __name__ == '__main__':
app.run(debug=True)
```
import json import pandas as pd from flask import Flask,render_template,request,jsonify from gevent import pywsgi from dataclass import data app=Flask(__name__) df=pd.read_csv('data.csv') data=data(df) #@app.route('/data2') @app.route('/') def index(): return render_template('index.html') @app.route('/data') def givedata(): zhudata=data.zhudata() linedata = data.linedata() gender_c1=data.gender_c1() category_2_mount=data.category_2_mount() t_y_m_mount=data.t_y_m_mount() category_1_mount=data.category_1_mount() gdata={'zhudata':zhudata, 'linedata':linedata, 'gender_c1':gender_c1, 'category_2_mount':category_2_mount, 't_y_m_mount':t_y_m_mount, 'category_1_mount':category_1_mount} return json.dumps(gdata) @app.route('/data2',methods=['get','POST']) def givedata2(): gaugedata=data.gaugedata() gdata={'gaugedata':gaugedata} print(json.dumps(gaugedata)) return json.dumps(gdata) # return render_template('index.html') if __name__=='__main__': app.run() # // server = pywsgi.WSGIServer(('127.0.0.1', 5000), app) # server.serve_forever()
这段代码是一个简单的Flask web应用程序,它使用了pandas库读取了一个名为"data.csv"的csv文件,并使用dataclass模块将其转换成一个可供web应用程序使用的数据类。
该应用程序有两个路由:一个是根路径('/'),返回一个名为"index.html"的模板;另一个是"/data"路径,返回一个JSON格式的数据,其中包含了多个数据集,例如:"zhudata"、"linedata"、"gender_c1"、"category_2_mount"、"t_y_m_mount"和"category_1_mount"。此外,还有一个名为"givedata2"的路由,其方法是GET和POST,返回一个名为"gaugedata"的数据集。
最后,如果该应用程序直接运行,则会在本地主机上启动应用程序并监听5000端口。
阅读全文