目录
?
一、程序介绍:
三、文档目录:
四、运行截图:
五、数据库表:
六、代码展示:
七、更多学习目录:
八、互动留言
一、程序介绍:
- 文档:开发技术文档、参考LW、答辩PPT,部分项目另有其他文档
- 开发环境:Pytharm(python3.7以上)丨微信开发者工具丨navicat12丨mysql5.7
- 配套工具:涉及项目开发运行的全部软件均提供
- 项目运行视频或截图:提供
- 运行电脑配置要求:内存≥8G,? CPU? i3及以上
- 运行教学:指导
- 项目修改教学:有
- 代码讲解:代码结构讲解
三、文档目录:
四、运行截图:
?
?
五、数据库表:
?
六、代码展示:
#coding:utf-8
__author__ = "ila"
import base64, copy, logging, os, time, xlrd
from django.http import JsonResponse
from django.apps import apps
from django.db.models.aggregates import Count,Sum
from .models import fuzhuangleixing
from util.codes import *
from util.auth import Auth
from util.common import Common
import util.message as mes
from django.db import connection
import random
from django.core.mail import send_mail
from alipay import AliPayConfig, AliPay
from django.conf import settings
from django.shortcuts import redirect
def fuzhuangleixing_register(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = fuzhuangleixing.createbyreq(fuzhuangleixing, fuzhuangleixing, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = "用户已存在,请勿重复注册!"
return JsonResponse(msg)
def fuzhuangleixing_login(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
datas = fuzhuangleixing.getbyparams(fuzhuangleixing, fuzhuangleixing, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
try:
__sfsh__= fuzhuangleixing.__sfsh__
except:
__sfsh__=None
if __sfsh__=='是':
if datas[0].get('sfsh')=='否':
msg['code']=other_code
msg['msg'] = "账号已锁定,请联系管理员审核!"
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, fuzhuangleixing, req_dict)
def fuzhuangleixing_logout(request):
if request.method in ["POST", "GET"]:
msg = {
"msg": "登出成功",
"code": 0
}
return JsonResponse(msg)
def fuzhuangleixing_resetPass(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
columns= fuzhuangleixing.getallcolumn( fuzhuangleixing, fuzhuangleixing)
try:
__loginUserColumn__= fuzhuangleixing.__loginUserColumn__
except:
__loginUserColumn__=None
username=req_dict.get(list(req_dict.keys())[0])
if __loginUserColumn__:
username_str=__loginUserColumn__
else:
username_str=username
if 'mima' in columns:
password_str='mima'
else:
password_str='password'
init_pwd = '123456'
eval('''fuzhuangleixing.objects.filter({}='{}').update({}='{}')'''.format(username_str,username,password_str,init_pwd))
return JsonResponse(msg)
def fuzhuangleixing_session(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code,"msg": mes.normal_code, "data": {}}
req_dict={"id":request.session.get('params').get("id")}
msg['data'] = fuzhuangleixing.getbyparams(fuzhuangleixing, fuzhuangleixing, req_dict)[0]
return JsonResponse(msg)
def fuzhuangleixing_default(request):
if request.method in ["POST", "GET"]:
msg = {"code": normal_code,"msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
req_dict.update({"isdefault":"是"})
data=fuzhuangleixing.getbyparams(fuzhuangleixing, fuzhuangleixing, req_dict)
if len(data)>0:
msg['data'] = data[0]
else:
msg['data'] = {}
return JsonResponse(msg)
def fuzhuangleixing_page(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":10,"list":[]}}
req_dict = request.session.get("req_dict")
#获取全部列名
columns= fuzhuangleixing.getallcolumn( fuzhuangleixing, fuzhuangleixing)
#当前登录用户所在表
tablename = request.session.get("tablename")
#authColumn=list(__authTables__.keys())[0]
#authTable=__authTables__.get(authColumn)
# if authTable==tablename:
#params = request.session.get("params")
#req_dict[authColumn]=params.get(authColumn)
'''__authSeparate__此属性为真,params添加userid,后台只查询个人数据'''
try:
__authSeparate__=fuzhuangleixing.__authSeparate__
except:
__authSeparate__=None
if __authSeparate__=="是":
tablename=request.session.get("tablename")
if tablename!="users" and 'userid' in columns:
try:
req_dict['userid']=request.session.get("params").get("id")
except:
pass
#当项目属性hasMessage为”是”,生成系统自动生成留言板的表messages,同时该表的表属性hasMessage也被设置为”是”,字段包括userid(用户id),username(用户名),content(留言内容),reply(回复)
#接口page需要区分权限,普通用户查看自己的留言和回复记录,管理员查看所有的留言和回复记录
try:
__hasMessage__=fuzhuangleixing.__hasMessage__
except:
__hasMessage__=None
if __hasMessage__=="是":
tablename=request.session.get("tablename")
if tablename!="users":
req_dict["userid"]=request.session.get("params").get("id")
# 判断当前表的表属性isAdmin,为真则是管理员表
# 当表属性isAdmin=”是”,刷出来的用户表也是管理员,即page和list可以查看所有人的考试记录(同时应用于其他表)
__isAdmin__ = None
allModels = apps.get_app_config('main').get_models()
for m in allModels:
if m.__tablename__==tablename:
try:
__isAdmin__ = m.__isAdmin__
except:
__isAdmin__ = None
break
# 当前表也是有管理员权限的表
if __isAdmin__ == "是":
if req_dict.get("userid"):
del req_dict["userid"]
else:
#非管理员权限的表,判断当前表字段名是否有userid
if tablename!="users" and 'fuzhuangleixing'[:7]!='discuss'and "userid" in fuzhuangleixing.getallcolumn(fuzhuangleixing,fuzhuangleixing):
req_dict["userid"] = request.session.get("params").get("id")
#当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的
try:
__authTables__=fuzhuangleixing.__authTables__
except:
__authTables__=None
if __authTables__!=None and __authTables__!={}:
try:
del req_dict['userid']
except:
pass
for authColumn,authTable in __authTables__.items():
if authTable==tablename:
params = request.session.get("params")
req_dict[authColumn]=params.get(authColumn)
break
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] =fuzhuangleixing.page(fuzhuangleixing, fuzhuangleixing, req_dict, request)
return JsonResponse(msg)
def fuzhuangleixing_autoSort(request):
'''
.智能推荐功能(表属性:[intelRecom(是/否)],新增clicktime[前端不显示该字段]字段(调用info/detail接口的时候更新),按clicktime排序查询)
主要信息列表(如商品列表,新闻列表)中使用,显示最近点击的或最新添加的5条记录就行
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":10,"list":[]}}
req_dict = request.session.get("req_dict")
if "clicknum" in fuzhuangleixing.getallcolumn(fuzhuangleixing,fuzhuangleixing):
req_dict['sort']='clicknum'
else:
req_dict['sort']='clicktime'
req_dict['order']='desc'
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = fuzhuangleixing.page(fuzhuangleixing,fuzhuangleixing, req_dict)
return JsonResponse(msg)
def fuzhuangleixing_list(request):
'''
前台分页
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":10,"list":[]}}
req_dict = request.session.get("req_dict")
#获取全部列名
columns= fuzhuangleixing.getallcolumn( fuzhuangleixing, fuzhuangleixing)
#表属性[foreEndList]前台list:和后台默认的list列表页相似,只是摆在前台,否:指没有此页,是:表示有此页(不需要登陆即可查看),前要登:表示有此页且需要登陆后才能查看
try:
__foreEndList__=fuzhuangleixing.__foreEndList__
except:
__foreEndList__=None
if __foreEndList__=="前要登":
tablename=request.session.get("tablename")
if tablename!="users" and 'userid' in columns:
try:
req_dict['userid']=request.session.get("params").get("id")
except:
pass
#forrEndListAuth
try:
__foreEndListAuth__=fuzhuangleixing.__foreEndListAuth__
except:
__foreEndListAuth__=None
#authSeparate
try:
__authSeparate__=fuzhuangleixing.__authSeparate__
except:
__authSeparate__=None
if __foreEndListAuth__ =="是" and __authSeparate__=="是":
tablename=request.session.get("tablename")
if tablename!="users":
req_dict['userid']=request.session.get("params",{"id":0}).get("id")
tablename = request.session.get("tablename")
if tablename == "users" and req_dict.get("userid") != None:#判断是否存在userid列名
del req_dict["userid"]
else:
__isAdmin__ = None
allModels = apps.get_app_config('main').get_models()
for m in allModels:
if m.__tablename__==tablename:
try:
__isAdmin__ = m.__isAdmin__
except:
__isAdmin__ = None
break
if __isAdmin__ == "是":
if req_dict.get("userid"):
del req_dict["userid"]
else:
#非管理员权限的表,判断当前表字段名是否有userid
if "userid" in columns:
try:
# 本接口可以匿名访问,所以try判断是否为匿名
req_dict['userid']=request.session.get("params").get("id")
except:
pass
#当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的
try:
__authTables__=fuzhuangleixing.__authTables__
except:
__authTables__=None
if __authTables__!=None and __authTables__!={} and __foreEndListAuth__=="是":
try:
del req_dict['userid']
except:
pass
for authColumn,authTable in __authTables__.items():
if authTable==tablename:
params = request.session.get("params")
req_dict[authColumn]=params.get(authColumn)
break
if fuzhuangleixing.__tablename__[:7]=="discuss":
try:
del req_dict['userid']
except:
pass
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = fuzhuangleixing.page(fuzhuangleixing, fuzhuangleixing, req_dict)
return JsonResponse(msg)
def fuzhuangleixing_save(request):
'''
后台新增
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
if 'clicktime' in req_dict.keys():
del req_dict['clicktime']
tablename=request.session.get("tablename")
__isAdmin__ = None
allModels = apps.get_app_config('main').get_models()
for m in allModels:
if m.__tablename__==tablename:
try:
__isAdmin__ = m.__isAdmin__
except:
__isAdmin__ = None
break
#获取全部列名
columns= fuzhuangleixing.getallcolumn( fuzhuangleixing, fuzhuangleixing)
if tablename!='users' and req_dict.get("userid")!=None and 'userid' in columns and __isAdmin__!='是':
params=request.session.get("params")
req_dict['userid']=params.get('id')
error= fuzhuangleixing.createbyreq(fuzhuangleixing,fuzhuangleixing, req_dict)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def fuzhuangleixing_add(request):
'''
前台新增
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
#获取全部列名
columns= fuzhuangleixing.getallcolumn( fuzhuangleixing, fuzhuangleixing)
try:
__authSeparate__=fuzhuangleixing.__authSeparate__
except:
__authSeparate__=None
if __authSeparate__=="是":
tablename=request.session.get("tablename")
if tablename!="users" and 'userid' in columns:
try:
req_dict['userid']=request.session.get("params").get("id")
except:
pass
try:
__foreEndListAuth__=fuzhuangleixing.__foreEndListAuth__
except:
__foreEndListAuth__=None
if __foreEndListAuth__ and __foreEndListAuth__!="否":
tablename=request.session.get("tablename")
if tablename!="users":
req_dict['userid']=request.session.get("params").get("id")
error= fuzhuangleixing.createbyreq(fuzhuangleixing,fuzhuangleixing, req_dict)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def fuzhuangleixing_thumbsup(request,id_):
'''
点赞:表属性thumbsUp[是/否],刷表新增thumbsupnum赞和crazilynum踩字段,
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
id_=int(id_)
type_=int(req_dict.get("type",0))
rets=fuzhuangleixing.getbyid(fuzhuangleixing,fuzhuangleixing,id_)
update_dict={
"id":id_,
}
if type_==1:#赞
update_dict["thumbsupnum"]=int(rets[0].get('thumbsupnum'))+1
elif type_==2:#踩
update_dict["crazilynum"]=int(rets[0].get('crazilynum'))+1
error = fuzhuangleixing.updatebyparams(fuzhuangleixing,fuzhuangleixing, update_dict)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def fuzhuangleixing_info(request,id_):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
data = fuzhuangleixing.getbyid(fuzhuangleixing,fuzhuangleixing, int(id_))
if len(data)>0:
msg['data']=data[0]
#浏览点击次数
try:
__browseClick__= fuzhuangleixing.__browseClick__
except:
__browseClick__=None
if __browseClick__=="是" and "clicknum" in fuzhuangleixing.getallcolumn(fuzhuangleixing,fuzhuangleixing):
try:
clicknum=int(data[0].get("clicknum",0))+1
except:
clicknum=0+1
click_dict={"id":int(id_),"clicknum":clicknum}
ret=fuzhuangleixing.updatebyparams(fuzhuangleixing,fuzhuangleixing,click_dict)
if ret!=None:
msg['code'] = crud_error_code
msg['msg'] = ret
return JsonResponse(msg)
def fuzhuangleixing_detail(request,id_):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
data =fuzhuangleixing.getbyid(fuzhuangleixing,fuzhuangleixing, int(id_))
if len(data)>0:
msg['data']=data[0]
#浏览点击次数
try:
__browseClick__= fuzhuangleixing.__browseClick__
except:
__browseClick__=None
if __browseClick__=="是" and "clicknum" in fuzhuangleixing.getallcolumn(fuzhuangleixing,fuzhuangleixing):
try:
clicknum=int(data[0].get("clicknum",0))+1
except:
clicknum=0+1
click_dict={"id":int(id_),"clicknum":clicknum}
ret=fuzhuangleixing.updatebyparams(fuzhuangleixing,fuzhuangleixing,click_dict)
if ret!=None:
msg['code'] = crud_error_code
msg['msg'] = retfo
return JsonResponse(msg)
def fuzhuangleixing_update(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
if req_dict.get("mima") and req_dict.get("password"):
if "mima" not in fuzhuangleixing.getallcolumn(fuzhuangleixing,fuzhuangleixing) :
del req_dict["mima"]
if "password" not in fuzhuangleixing.getallcolumn(fuzhuangleixing,fuzhuangleixing) :
del req_dict["password"]
try:
del req_dict["clicknum"]
except:
pass
error = fuzhuangleixing.updatebyparams(fuzhuangleixing, fuzhuangleixing, req_dict)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def fuzhuangleixing_delete(request):
'''
批量删除
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
error=fuzhuangleixing.deletes(fuzhuangleixing,
fuzhuangleixing,
req_dict.get("ids")
)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def fuzhuangleixing_vote(request,id_):
'''
浏览点击次数(表属性[browseClick:是/否],点击字段(clicknum),调用info/detail接口的时候后端自动+1)、投票功能(表属性[vote:是/否],投票字段(votenum),调用vote接口后端votenum+1)
统计商品或新闻的点击次数;提供新闻的投票功能
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code}
data= fuzhuangleixing.getbyid(fuzhuangleixing, fuzhuangleixing, int(id_))
for i in data:
votenum=i.get('votenum')
if votenum!=None:
params={"id":int(id_),"votenum":votenum+1}
error=fuzhuangleixing.updatebyparams(fuzhuangleixing,fuzhuangleixing,params)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def fuzhuangleixing_importExcel(request):
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": "成功", "data": {}}
excel_file = request.FILES.get("file", "")
file_type = excel_file.name.split('.')[1]
if file_type in ['xlsx', 'xls']:
data = xlrd.open_workbook(filename=None, file_contents=excel_file.read())
table = data.sheets()[0]
rows = table.nrows
try:
for row in range(1, rows):
row_values = table.row_values(row)
req_dict = {}
fuzhuangleixing.createbyreq(fuzhuangleixing, fuzhuangleixing, req_dict)
except:
pass
else:
msg.code = 500
msg.msg = "文件类型错误"
return JsonResponse(msg)
def fuzhuangleixing_sendemail(request):
if request.method in ["POST", "GET"]:
req_dict = request.session.get("req_dict")
code = random.sample(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 4)
to = []
to.append(req_dict['email'])
send_mail('用户注册', '您的注册验证码是【'+''.join(code)+'】,请不要把验证码泄漏给其他人,如非本人请勿操作。', 'yclw9@qq.com', to, fail_silently = False)
cursor = connection.cursor()
cursor.execute("insert into emailregistercode(email,role,code) values('"+req_dict['email']+"','用户','"+''.join(code)+"')")
msg = {
"msg": "发送成功",
"code": 0
}
return JsonResponse(msg)
def fuzhuangleixing_autoSort2(request):
if request.method in ["POST", "GET"]:
req_dict = request.session.get("req_dict")
cursor = connection.cursor()
leixing = set()
try:
cursor.execute("select inteltype from storeup where userid = %d"%(request.session.get("params").get("id"))+" and tablename = 'fuzhuangleixing' order by addtime desc")
rows = cursor.fetchall()
for row in rows:
for item in row:
leixing.add(item)
except:
leixing = set()
L = []
cursor.execute("select * from fuzhuangleixing where $intelRecomColumn in ('%s"%("','").join(leixing)+"') union all select * from fuzhuangleixing where $intelRecomColumn not in('%s"%("','").join(leixing)+"')")
desc = cursor.description
data_dict = [dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall()]
for online_dict in data_dict:
for key in online_dict:
if 'datetime.datetime' in str(type(online_dict[key])):
online_dict[key] = online_dict[key].strftime(
"%Y-%m-%d %H:%M:%S")
else:
pass
L.append(online_dict)
return JsonResponse({"code": 0, "msg": '', "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":5,"list": L[0:6]}})
def fuzhuangleixing_value(request, xColumnName, yColumnName, timeStatType):
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": "成功", "data": {}}
where = ' where 1 = 1 '
sql = ''
if timeStatType == '日':
sql = "SELECT DATE_FORMAT({0}, '%Y-%m-%d') {0}, sum({1}) total FROM fuzhuangleixing {2} GROUP BY DATE_FORMAT({0}, '%Y-%m-%d')".format(xColumnName, yColumnName, where, '%Y-%m-%d')
if timeStatType == '月':
sql = "SELECT DATE_FORMAT({0}, '%Y-%m') {0}, sum({1}) total FROM fuzhuangleixing {2} GROUP BY DATE_FORMAT({0}, '%Y-%m')".format(xColumnName, yColumnName, where, '%Y-%m')
if timeStatType == '年':
sql = "SELECT DATE_FORMAT({0}, '%Y') {0}, sum({1}) total FROM fuzhuangleixing {2} GROUP BY DATE_FORMAT({0}, '%Y')".format(xColumnName, yColumnName, where, '%Y')
L = []
cursor = connection.cursor()
cursor.execute(sql)
desc = cursor.description
data_dict = [dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall()]
for online_dict in data_dict:
for key in online_dict:
if 'datetime.datetime' in str(type(online_dict[key])):
online_dict[key] = online_dict[key].strftime(
"%Y-%m-%d %H:%M:%S")
else:
pass
L.append(online_dict)
msg['data'] = L
return JsonResponse(msg)
def fuzhuangleixing_o_value(request, xColumnName, yColumnName):
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": "成功", "data": {}}
where = ' where 1 = 1 '
sql = "SELECT {0}, sum({1}) AS total FROM fuzhuangleixing {2} GROUP BY {0}".format(xColumnName, yColumnName, where)
L = []
cursor = connection.cursor()
cursor.execute(sql)
desc = cursor.description
data_dict = [dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall()]
for online_dict in data_dict:
for key in online_dict:
if 'datetime.datetime' in str(type(online_dict[key])):
online_dict[key] = online_dict[key].strftime(
"%Y-%m-%d %H:%M:%S")
else:
pass
L.append(online_dict)
msg['data'] = L
return JsonResponse(msg)
def fuzhuangleixing_alipay(request):
if request.method in ["POST", "GET"]:
alipay = AliPay(
appid=settings.ALIPAY_APP_ID,
app_notify_url=None,
app_private_key_string=settings.APP_PRIVATE_KEY_STRING,
alipay_public_key_string=settings.ALIPAY_PUBLIC_KEY_STRING,
sign_type=settings.ALIPAY_SIGN_TYPE,
debug=True,
config=AliPayConfig(timeout=15)
)
req_dict = request.session.get("req_dict")
order_string = alipay.api_alipay_trade_page_pay(
out_trade_no=req_dict['tradeno'],
total_amount=req_dict['totalamount'],
subject=req_dict['subject'],
return_url='http://localhost:8080/djangom208y/fuzhuangleixing/notify',
#notify_url=''
)
pay_url = 'https://openapi.alipaydev.com/gateway.do?' + order_string
pay_url = '<form name="punchout_form" method="post" action="{0}"><input type="hidden" name="biz_content" ><input type="submit" value="立即支付" style="display: none"></form>'.format(pay_url)
return JsonResponse({'code': 0, "data": pay_url})
def fuzhuangleixing_notify(request):
if request.method in ["POST", "GET"]:
req_dict = request.session.get("req_dict")
out_trade_no = req_dict['out_trade_no']
cursor = connection.cursor()
return redirect('http://localhost:8080/djangom208y/admin/dist/index.html#/fuzhuangleixing')
七、更多学习目录:
1.基于ssm的甘肃旅游系统 | 2.基于SSM的旅游企业财务管理系统 | 3.基于SSM的疫情防疫项目(带爬虫) | 4.基于springboot的人力资源管理系统 | 5.基于SSM的民生置业有限公司信息管理系统 | 6.基于ssm的在线挂号小程序系统 | 7.基于Java(spring boot框架)新冠疫苗预约管理系统 | 8.基于SSM的校园小助手系统 | 9.基于springboot的点餐小程序系统 | 10.基于ssm的健康食谱推荐小程序 | 11.基于ssm的健康食谱小程序 | 12.基于ssm的二手汽车拍卖系统小程序 | 13.基于ssm的二手汽车拍卖系统app | 14.基于springboot的客户关系管理系统 | 15.基于SSM的校园活动管理小程序 | 16.基于SSM的个人健康饮食管理小程序系统 | 17.基于ssm的微信小程序水果商城 | 18.基于微信小程序的一起运动吧活动管理系统 | 19.基于springboot的微信小程序的在线商城系统(根据收藏类别推荐+点击率推荐) | 20.基于SSM新闻网站 | 21.基于ssm的在线租房网站 | 22.基于springboot的中学校园管理微信小程序 | 23.基于Springboot学生在线考试系统 | 24.基于SSM的网上奶茶购买平台? | 25.基于springboot的高校社团管理系统(多用户角色) | 26.基于springboot个性化学习推荐网站 | 27.基于微信小程序的西藏特产在线商城系统 | 28.基于SSM的微信小程序的查寝系统 | 29.基于ssm的微信小程序的口袋故事系统 | 30.基于SSM的小区物业管理系统 | 31.基于SSM的小程序任务调度管理信息系统 | 32.基于SSM的团员信息管理系统 | 33.基于SSM框架的法律学习小程序 | 34.基于springboot的学校监考小程序 | 35.基于SSM的超市财务管理系统? | 36.基于springboot的学生宿舍管理系统 | 37.基于SSM的课程设计管理系统 | 38.基于SSM的课设管理小程序 | 39.基于springboot的果蔬交易与物流微信小程序 | 40.基于ssm的果蔬交易与物流微信小程序 | 41.基于SSM的红色文化展示小程序系统 | 42.基于SSM的小区物业管理系统 | 43.基于javaweb的机械博物馆展品管理系统 | 44.基于springboot的实验室设备管理系统 | 45.基于SSM企业人力资源管理系统 | 46.基于springboot的实验室物资管理小程序 | 47.基于springboot的高校选课系统 | 48.基于SSM小程序蔬菜水果零食销售系统 | 49.基于SSM的园第二课堂小程序 | 50.基于ssm的全球地震数据信息管理系统 | 51.基于ssm的足球联赛管理系统 | 52.基于SSM的小程序的人工智能类竞赛管理系统 | 53.基于SSM的智慧医疗问诊小程序 | 54.基于SSM的微信小程序直播在线教育平台 | 55.基于springboot+爬虫的新闻网站系统 | 56.基于SSM的自驾游小程序 | 57.基于SSM的高校宿舍管理小程序系统 | 58.基于SSM的微信小程序在线学习平台 | 59.基于Android的防疫信息管理系统 | 60.基于springboot的患者术后康复的小程序 | 61.基于ssm微信小程序的校园换物系统 | 62.基于SSM微信小程序的智慧党史系统 | 63.基于SSM的家庭理财系统 | 64.基于SSM的高校学籍信息管理系统 | 65.基于SSM微信小程序的航班查询和订票系统 | 66.基于ssm的医院挂号系统 | 67.基于SSM的在线阅读系统 | 68.基于SSM的疫情社区物资配送系统 | 69.基于ssm的加油服务系统小程序系统 | 70.基于ssm的XX学院校友录小程序系统 | 71.基于ssm的药店管理系统微信小程序系统 | 72.基于ssm的装潢应用系统小程序系统 | 73.基于ssm的学生公寓生活管理系统 | 74.基于ssm的计算机维修服务微信小程序 | 75.基于ssm的微信音乐播放器小程序 | 76.基于ssm的中医药配方小程序 | 77.基于ssm的二手交易微信小程序 | 78.基于ssm的的家教信息小程序管理系统 | 79.基于ssm的鲜花销售小程序系统 | 80.基于ssm的预约挂号小程序系统 | 81.基于ssm的在线考试小程序系统 | 82.基于ssm的慢性疾病管理微信小程序 | 83.基于springboot的在线考试系统小程序 | 84.基于springboot的批发零售业商品管理小程序系统 | 85.基于ssm的图书借阅到期提醒小程序系统 | 86.基于springboot的服装企业人事管理小程序系统 | 87.基于nodejs的电商管理系统 | 88.基于nodejs的知识分享网站 | 89.基于nodejs的宠物医生预约平台 | 90.基于nodejs的外卖平台 | 91.基于nodejs的大学生心理咨询微信小程序 | 92.基于nodejs的房屋租赁管理系统 | 93.基于nodejs的拼车网站 | 94.基于nodejs的博客系统 | 95.基于nodejs的家政服务微信小程序 | 96.基于nodejs的物物交换平台 | 97.基于php的实验室安全系统 | 98.基于php的单招志愿采集系统 | 99.基于php的网上买卖管理系统 | 100.基于php的XX学院兼职小程序系统 | 101.基于php的计算机信息管理学院网站 | 102.基于python+Django图书馆智能推荐系统python3.85版本 | 103.基于Python的个性化电影推荐的算法 | 104.基于python+django图书推荐系统 | 105.基于Python的个性化电影推荐的算法 | 106.基于django的爬虫新闻网站系统 | 107.基于Python的人事档案管理系统? | 108.基于python的汽车销售系统 | 109.基于python的《C语言程序设计》课程案例库研究 | 110.基于python的飞机票销售系统 | 111.基于python的旧衣物捐赠系统 | 112.基于python的超市进销存 | 113.基于python的在线办公系统 | 114.基于python的大学生职业推荐平台 | 115.基于python的个性化服装系统 | 116.基于python的酒店住房管理系统 | 117.基于python的三甲妇幼保健院网站 | 118.基于python的大学生生活信息交互平台 | 119.基于python的学生兼职平台系统 | 120.基于python的主机硬件配置推荐系统 | 121.基于python的本地健康宝微信小程序 | 122.基于python的鲜花销售小程序 | 123.基于JSP的网上订餐管理系统 | 124.基于jAVAWeb停车场管理系统 | 125.基于SSM幼儿园信息管理系统 | 126.基于Springboot电影订票系统 | 127.基于ssm人力资源考勤系统 | 128.基于javaweb作业管理系统 | 129.基于javaweb校园二手物品交易 | 130.基于javaweb的停车场管理系统 | 131.基于javaweb学生选课系统 | 132.基于SSM实现的人力资源管理系统 | 133.基于javaweb项目疫情宿舍管理 | 134.基于SSM的图书商城系统 | 135.基于ssm的微信小程序家教系统 | 136.基于ssm的旅游管理系统travel | 137.基于SSM的微信小程序图书借阅系统 | 138.基于web的微信小程序家政预约系统 | 139.基于web的微信小程序菜谱系统 | 140.基于web的微信小程序服装商城系统 | 141.基于web的微信小程序校园活动管理系统 | 142.基于web的微信小程序记事本系统 | 143.基于ssm的基于微信小程序的农产品销售系统 | 144.基于ssm的微信小程序旅游服务系统 | 145.基于springboot的微信小程序在线考试管理系统 | 146.基于ssm的微信小程序电影院购票系统 | 147.基于ssm的微信小程序房屋交易系统 | 148.基于ssm的微信小程序培训机构管理系统 | 149.基于web的微信小程序电影购票系统 | 150.基于ssm的酒店管理系统 | 151.基于javaweb点餐系统 | 152.基于javaweb宿舍管理系统 | 153.基于springboot的信息化管理系统 | 154.基于SSM的美妆商城系统 | 155.基于javaweb学生成绩管理系 | 156.基于SSM的新闻发布系统 | 157.基于SSM实现的小区物业管理系统 | 158.基于SSH的城市公交查询系统 | 159.基于S2SH的人力资源管理系统 | 160.基于S2SH酒店点餐收款系统 | 161.基于JSP的在线调查问卷系统 | 162.基于JSP的网上订餐管理系统 | 163.基于JSP实现的飞机票售票管理系统 | 164.基于SSM农场信息管理系统 | 165.基于javaweb花店管理系统 | 166.基于javaweb药房库存管理系统 | 167.基于SSM的甜品店系统 | 168.基于S2SH的药膳馆会员管理系统 | 169.基于javaweb的学籍管理系统 | 170.基于web的网上书城系统 | 171.基于web的学生成绩系统 | 172.基于SSH的客运站网上售票系统 | 173.基于S2SH校园论坛系统 | 174.基于javaweb旅游管理系统 | 175.基于SSH的旅游管理系统 | 176.基于SSM垃圾分类管理系统 | 177.基于ssm宠物销售系统 | 178.基于javaweb的在线人才招聘系统 | 179.基于S2SH小区物业系统 | 180.基于ssm人事管理系统 | 181.基于web的淘淘商城系统 |
八、互动留言
|