本人在做畢設,做個訂票系統要加個地址,在加之前是可以正常運行的,加完以后他提醒我元組索引超出范圍,我找到出問題的那一行可是我不知道如何改,求大佬教教我。代碼如下:
def payment_movie(request):
if not request.session.get('is_login', None): # 未登錄不可查看
return redirect('/login')
# 接受請求里面的引數
if request.method == "POST":
needNum = request.POST.get('num')
needName = request.POST.get('name')
needDate = request.POST.get('date')
needAdd = request.POST.get('address')
username = request.session.get('user_name')
# 判斷輸入的是否是數字
# 用try判斷是否輸入的是數字
try:
needNum = int(needNum)
except:
return HttpResponse("輸入的票數非數字")
# 查詢資料庫中有多少剩余票
get_sql = "select movie_residue FROM movie_site_n where movie_name = '{}' and movie_date = '{}'and movie_address".format(needName,needDate,needAdd)
nowResidue = int(get_sqldata(get_sql)[0][0][0])
# 計算這次購買后剩余的票
resResidue = int(nowResidue) - int(needNum)
if resResidue < 0:
return HttpResponse("抱歉,余票只有{}張,無法滿足您{}張的需求".format(nowResidue,needNum))
# 拼接更新資料庫的sql
update_sql = "UPDATE `movie_site_n` SET `movie_residue` = '{}' WHERE `movie_name` = '{}' AND `movie_date` = '{}'and movie_address = '{}';" \
.format(str(resResidue), needName, needDate,needAdd)
# 執行sql
# 用try捕獲例外,用來拋出付款失敗
try:
insert(update_sql)
except:
return HttpResponse("抱歉,購買失敗。")
## 查詢是否在可更改表中,在的話洗掉掉,讓他無法更改
select_sql = "select * from movie_site WHERE movie_name='{}' AND movie_date='{}'and movie_address='{}'".format(needName, needDate,needAdd)
if not get_sqldata(select_sql) == ():
delete_sql = "delete FROM movie_site WHERE movie_name='{}' AND movie_date='{}'and movie_address='{}'".format(needName, needDate,needAdd)
insert(delete_sql)
for i in range(0, int(needNum)):
insert_sql = "INSERT INTO `movie_personage`(`name`, `movie_name`, `movie_date`,`movie_address`) " \
"VALUES ('{}', '{}', '{}','{}');".format( username , needName, needDate,needAdd)
insert(insert_sql)
# 以json格式拼接下電影名,電影時間和購買的票數
needRes = {}
needRes['name'] = needName
needRes['date'] = needDate
needRes['num'] = needNum
needRes['address'] = needAdd
return render(request, 'payment_movie.html', {'needRes': needRes})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/119316.html
上一篇:運行代碼顯示ModuleNotFoundError: No module named 'matplotlib.pylab'
