"""
import os
import json
from datetime import datetime
USER_STATUS = False
USER_COUNT = {}
SHOPPING_CAR = {}
def decorate(arg):
def inner():
if not USER_STATUS:
print('請先登陸後再檢視!')
return
arg()
return
return inner
def register():
while 1:
username = input('註冊使用者名稱:')
with open('8login.txt', 'r', encoding='utf-8') as f:
register1 = True
for line in f:
if line.split('----')[0].strip() == username:
register1 = False
print('帳戶已存在!')
break
if not register1:
break
pwd = input('密碼:')
sj = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
msg = '----'.join([username, pwd, sj, '0'])
with open('8login.txt', 'a', encoding='utf-8') as f:
f.write(msg + '\n')
print('註冊成功!')
return
def login():
while 1:
username = input('使用者名稱:')
with open('8login.txt', 'r', encoding='utf-8') as f:
status = False
for line in f:
if line.split('----')[0] == username:
if line.split('----')[-1].strip() == '3':
print('帳戶已鎖定!')
return
status = True
break
if not status:
print('使用者不存在!')
return
pwd = input('密碼:')
with open('8login.txt', 'r', encoding='utf-8') as f:
for line in f:
if line.split('----')[0] == username and line.split('----')[1] == pwd:
USER_COUNT[username] = 0
print('登陸成功')
global USER_STATUS
USER_STATUS = username
return
if USER_COUNT.get(username) == None:
USER_COUNT[username] = 0
if USER_COUNT[username] < 3:
USER_COUNT[username] += 1
if not USER_COUNT[username] < 3:
with open('8login.txt', 'r', encoding='utf-8') as f1, \
open('8login(改).txt', 'w', encoding='utf-8') as f2:
for line in f1:
if line.split('----')[0] == username:
new_line = line.replace('0', '3')
f2.write(new_line)
else:
f2.write(line)
os.remove('8login.txt')
os.rename('8login(改).txt', '8login.txt')
print('輸入錯誤超過3次,鎖定賬號!')
return
print('登入失敗請重試!')
@decorate
def goods():
f = open('8商品列表', 'r', encoding='utf-8')
a = f.read()
lst = a.split('\n')
max_page, end = divmod(len(lst), 3) # 最大頁,最後一頁條數(總條數,每頁條數)
if end > 0:
max_page += 1
x, y, z = 0, 3, 1
while 1:
if y > len(lst):
y = len(lst)
for i in range(x, y):
print(lst[i])
print('當前第%s頁,共%s頁.' % (z, max_page))
user = input('請輸入序號加入到購物車,Y/y進入下一頁,N/n退出:')
if user.upper() == 'N':
return '已退出'
elif user.upper() == 'Y':
x += 3
y += 3
z += 1
if y == len(lst) + 3:
x, y, z = 0, 3, 1
continue
elif user.isdigit():
pand = False
f = open('8商品列表', 'r', encoding='utf-8')
for line in f:
cut = line.split('|')
if user == cut[0]:
pand = True
if SHOPPING_CAR.get(cut[1]) == None:
SHOPPING_CAR[cut[1]] = 0
break
if not pand:
print('輸入錯誤!')
continue
while 1:
count = input('請選擇數量:')
if not count.isdigit():
print('請輸入阿拉伯數字!')
continue
SHOPPING_CAR[cut[1]] += int(count)
date = datetime.now().strftime('%Y-%m-%d-%H-%M')
global USER_STATUS
dir_path = os.path.exists('shopping_car\\%s' % USER_STATUS)
if not dir_path:
os.mkdir('shopping_car\\%s' % USER_STATUS)
with open("shopping_car\\%s\\%s.txt" % (USER_STATUS, date), 'w', encoding='utf-8') as f:
up = json.dumps(SHOPPING_CAR, ensure_ascii=False)
f.write(up)
break
print('已新增進購物車!')
print(SHOPPING_CAR)
else:
print('輸入有誤!')
@decorate
def shopping_car():
if not os.path.exists('shopping_car\\%s' % USER_STATUS):
print('您的購物車是空的,快去購買吧!')
return
content = os.walk('shopping_car\\%s' % USER_STATUS)
for a, b, c in content:
for x in c:
print(x)
f = open('shopping_car\\%s\\%s' % (USER_STATUS, x), 'r', encoding='utf-8')
for line in f:
a = json.loads(line)
for item in a:
f = open('8商品列表', 'r', encoding='utf-8')
ls = f.read().split('\n')
for lm in ls:
if lm.split('|')[1] == item:
price = lm.split('|')[2]
print(' %s|%s|%s個' % (item,price , a[item]))
return
def main():
'''
主頁面
:return:
'''
dic = {'1': register, '2': login, '3': goods, '4': shopping_car}
while 1:
print('''*****歡迎來到沙河商城!*****
1.註冊帳戶
2.登陸帳戶
3.瀏覽商品
4.檢視購物車''')
a = input('請選擇(N/n退出):')
if a.upper() == 'N':
return
if dic.get(a) == None:
print('輸入有誤!')
continue
dic.get(a)()
main()
"""
商城系統:包含使用者註冊/使用者登陸/商品瀏覽/我的購物車功能.
轉載於:https://www.cnblogs.com/zjx1/p/10745468.html
相關文章
- 使用者登陸註冊【JDBC版】JDBC
- AJAX+JAVA使用者登陸註冊驗證Java
- Android實現商城購物車功能Android
- 淘寶買家授權API系列:新增購物車商品、刪除購物車商品、獲取購物車商品列表API
- 使用集合實現註冊登陸功能,第一步: 提示使用者選擇功能, A(註冊) B(登陸) 。 要求: 功能選擇 的時候要忽略大小寫。
- [Day7] Node.js利用Express實現使用者註冊登陸功能(2)Node.jsExpress
- 直播商城APP,直接實現購物車商品數量加減APP
- laravel使用者登入註冊Laravel
- 使用者密碼包含特殊字元時的登陸方法密碼字元
- 完善購物車系統
- CNNIC:85%的網購者購物時會瀏覽商品的所有評價CNN
- JavaScript商城購物車價格自動計算功能JavaScript
- 微信登入+商品瀏覽
- flutter 購物車功能Flutter
- Django 使用者認證系統:註冊Django
- jQuery商品飛入購物車效果jQuery
- 前端開發--登陸註冊前端
- 使用者註冊/登入模組實踐
- 檢視linux系統當前登陸的使用者Linux
- Struts2+AJAX+JQuery 實現使用者登入與註冊功能。jQuery
- Jsp+SSH+mysql實現的web網上商場系統(前臺/後臺 功能:商品管理、購物車管理、訂單管理、使用者管理)JSMySqlWeb
- 改版後前端購物車系統前端
- 微信小程式的購物車功能微信小程式
- SSM 重構註冊登陸介面SSM
- Laravel 實現 passport 使用者註冊登入LaravelPassport
- 商城-使用者註冊-根據使用者名稱和密碼查詢使用者密碼
- PHP會話(Session)實現使用者登陸功能PHP會話Session
- vue例項-購物車功能Vue
- jquery簡單購物車功能jQuery
- React實現購物車功能React
- 關閉瀏覽器,迫使使用者退出系統瀏覽器
- JavaScript購物車計算商品總價格JavaScript
- Redis 購物車 - 刪除商品與更新購買數量Redis
- vue+elementUI完成註冊及登陸VueUI
- 利用python找到購物商城裡面的降價商品Python
- QQ使用者登陸介面
- Laravel5.8 入門系列二,快速實現使用者註冊登入功能Laravel
- 挑戰30分鐘寫個使用者登入註冊系統(前端)- 我的全棧獨立開發日記前端全棧