图书管理系统,基于flask框架python编写,连接VMware中的MySQL,可用postman测试例如:第一章 Python 机器学习入门之pandas的使用
文章目录
前言
注意:本文章主要注重于后端代码的编写
一、图书馆管理系统整体简介
本图书管理系统共有五大模块,分别为用户登录模块:登录功能;新书推荐模块:新书推荐功能;图书借阅模块:推荐功能、添加功能、编辑功能、借阅功能、查询功能;当前借阅模块:当前借阅功能、归还功能、确认归还功能;借阅记录模块:借阅记录功能。
二、构建与MySQL的连接,及定义几个functions
1.与MySQL连接,
代码如下(示例):
from flask import Flask,request,render_template,jsonify
from flask_cors import cross_origin,CORS
import pymysql
from pymysql import cursors
from decimal import *
# host1='127.0.0.1'
host1='虚拟机ip'#如要在主机测试postman,则为虚拟机ip,如要将此项目放在虚拟机运行,则用上面的ip
user1="root" #MySQL中的用户
passwd1="root123456" #MySQL的用户密码
db1='libsystem' # 数据库名称
app = Flask(__name__)
app.config["JSON_AS_ASCII"]=False
CORS(app,resources=r'/*')
2、定义functions
#sql查询语句的function
def sql_query_json(sql):
conn = pymysql.connect(host=host1, user=user1, password=passwd1, port=3306, db=db1, cursorclass=cursors.DictCursor)
cur = conn.cursor()
cur.execute(sql)
all_obj = cur.fetchall()
cur.close()
conn.close()
return all_obj
#sql插入更新语句的function
def sql_ua_json(sql):
conn = pymysql.connect(host=host1, user=user1, password=passwd1, port=3306, db=db1, cursorclass=cursors.DictCursor)
cur = conn.cursor()
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
登录模块
1.登录功能
代码如下(示例):
#任务:登入界面,查询数据库中user对应的密码,接收数据{'name':'','passwd':''},返回json数据{'code':200}
#如为管理员返回{'isAdmin': True},反之,返回{'isAdmin': False}
@app.route('/api/login',methods=['POST'])#根据前端路径进行修改
@cross_origin()
def post_login_data():
name = request.json.get('name')
passwd = request.json.get('passwd')
try:
sql = f'select password from user where name="{
name}";'
resultlg = sql_query_json(sql)
password1 = resultlg[0]['password']
sql22 = f'select role from user where name="{
name}";'
result22 = sql_query_json(sql22)
if passwd == password1:
if result22 == [{
'role': 'USER'}]:
rpdata = {
'code': 200, 'isAdmin': False}
return jsonify(rpdata)
elif result22 == [{
'role': 'ADMIN'}]