'''涵盖项目需要使用到的数据访问类,开始CURD吧!'''
import pymysql
# 实体类导包
from .models import User
from .models import Order
from .models import Shopping_cart
from .models import Good
from .models import Comment
from .models import Mini_Shopping_cart
# 数据库访问静态工厂
class Mysql_Static_Factory:
'''数据库静态工厂 提供如下方法:
@staticmethod: get_connecttion()
@return: connection连接对象,供CURD操作
'''
@staticmethod
def get_connection():
try:
connection = pymysql.connect(host="localhost",
user='root',
password='123456',
db='sports_shop',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
return connection
except Exception as e:
print(e)
# 用户表
class UserDaoImpl:
'''用户表 数据访问 提供如下方法
@methoad: selectByNamePWD() 用于登录验证
@methoad: selectByID() 查询用户的所有数据
@methoad: inserUser() 添加用户
@methoad: selectWalletByUserId() 查询用户余额
@methoad: updateUserWallet() 更新用户余额
'''
# 用于登录验证
def selectByNamePWD (self,username:str, password:str) :
'''查询是否有该用户
@param 用户名
@param 密码
@return user_id'''
connection = Mysql_Static_Factory.get_connection()
affected_num = 0
user_id = 0
try:
with connection.cursor() as cursor:
# 创建一条预编译的 SQL 语句
sql = "SELECT * FROM users WHERE username = %s AND password = %s"
# 执行预编译的 SQL 语句并传入参数
affected_num = cursor.execute(sql, (username, password))
# print('affect_num={}'.format(affected_num))
if affected_num > 0:
# 存在该用户密码,登录成功
result = cursor.fetchone()
user_id = result['user_id']
# 提交事务
connection.commit()
except Exception as e:
print(e)
finally:
connection.close()
return user_id
# 查询用户的所有数据
def selectByID (self,user_id:int) :
'''通过用户ID查询用户信息
@param 用户ID
@return 用户实体类'''
connection = Mysql_Static_Factory.get_connection()
user = User
try:
with connection.cursor() as cursor:
# 创建一条预编译的 SQL 语句
sql = "SELECT * FROM users WHERE user_id = %s"
# 执行预编译的 SQL 语句并传入参数
affected_num = cursor.execute(sql, (user_id))
# print('affect_num={}'.format(affected_num))
if affected_num > 0:
result = cursor.fetchone()
user = User(result['user_id'],
result['username'],
result['password'],
result['level'],
result['grade'],
result['type'],
result['wallet'],
result['user_picture'],
result['state_message'])
# 提交事务
connection.commit()
except Exception as e:
print(e)
finally:
connection.close()
return user
# 添加用户
def inserUser (self,user:User) :
'''添加一个新用户
@param User实体类
@return 布尔值True代表成功'''
connection = Mysql_Static_Factory.get_connection()
affected_num = 0
try:
with connection.cursor() as cursor:
# 创建一条预编译的 SQL 语句
sql = "INSERT INTO users (username, password,user_picture,type,level,grade,wallet,state_message) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)"
# 执行预编译的 SQL 语句并传入参数
affected_num = cursor.execute(sql, (user.username,
user.password,
user.user_picture,
user.type,
user.level,
user.grade,
user.wallet,
user.state_message))
# print('affect_num={}'.format(affected_num))
# 提交事务
connection.commit()
except Exception as e:
print(e)
finally:
connection.close()
return (affected_num > 0)
# 查询用户余额
def selectWalletByUserId (self,user_id:int) :
'''查询用户余额
@param 用户ID
@return 金额Wallet'''
connection = Mysql_Static_Factory.get_connection()
affected_num = 0
wallet = 0
try:
with connection.cursor() as cursor:
# 创建一条预编译的 SQL 语句
sql = "select wallet from users where user_id= %s"
# 执行预编译的 SQL 语句并传入参数
affected_num = cursor.execute(sql, (user_id))
# print('affect_num={}'.format(affected_num))
if affected_num > 0:
# 存在该用户密码,登录成功
result = cursor.fetchone()
wallet = result['wallet']
# 提交事务
connection.commit()
except Exception as e:
print(e)
finally:
connection.close()
return wallet
# 更新用户余额
def updateUserWallet (self,user_id:int,wallet:int) :
'''更新用户余额
@param 用户ID
@param 金额wallet
@return 布尔值True代表成功'''
connection = Mysql_Static_Factory.get_connection()
affected_num = 0
try:
with connection.cursor() as cursor:
# 创建一条预编译的 SQL 语句
sql = "update users set wallet = %s where user_id= %s"
# 执行预编译的 SQL 语句并传入参数
affected_num = cursor.execute(sql, (wallet,user_id))
# print('affect_num={}'.format(affected_num))
# 提交事务
connection.commit()
except Exception as e:
print(e)
finally:
connection.close()
return (affected_num > 0)
# 评论表
class CommentDaoImpl:
'''评论表 数据访问 提供如下方法
@methoad: addComment() 添加评论信息
@methoad: selectCommentByGoodId() 通过商品ID获取相关评论信息
@methoad: selectHasCommentByOrderId() 根据order_id 查看是否有评论信息
@methoad: updateSaysByOrderId() 根据根据order_id 修改 评论信息
'''
# 添加评论信息
def addComment (self,comment:Comment) :
'''添加一条评论记录
@param 评论表实体类Comment
@return 布尔值 True代表成功'''
connection = Mysql_Static_Factory.get_connection()
list_orders = []
try:
with connection.cursor() as cursor:
# 创建一条预编译的 SQL 语句
sql
没有合适的资源?快使用搜索试试~ 我知道了~
python课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip
共117个文件
py:41个
pyc:23个
jpg:16个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 22 下载量 185 浏览量
2023-05-29
12:50:24
上传
评论 32
收藏 12.2MB ZIP 举报
温馨提示
python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。 python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。python大作业课程设计基于Django的购
资源推荐
资源详情
资源评论
收起资源包目录
python课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip (117个子文件)
chunk-vendors.e92fd658.css 206KB
app.282f74b9.css 4KB
index.html 665B
favicon.ico 4KB
favicon2.ico 2KB
dock2.66d71121.jpeg 36KB
lunbo1.5cb0f226.jpg 1.38MB
lunbo2.758bcac6.jpg 1.15MB
lunbo4.5f81ba56.jpg 945KB
nonyao.jpg 285KB
applewatchse.jpg 111KB
huawei.jpg 111KB
applewatchSeries8.jpg 107KB
xiaomi.jpg 104KB
lunbo3.f0aba4b3.jpg 103KB
oppo.jpg 102KB
user.jpg 79KB
R.jpg 44KB
kzb68up.jpg 33KB
mainUserPic.c420635d.jpg 25KB
asideLogin.c4702ae3.jpg 15KB
asideRegister.684c313b.jpg 14KB
chunk-vendors.eeae9080.js 1.91MB
app.a39ff3ea.js 31KB
VSWorkspaceState.json 211B
PythonSettings.json 95B
ProjectSettings.json 35B
read.lock 0B
chunk-vendors.eeae9080.js.map 9.7MB
app.a39ff3ea.js.map 119KB
与bing的对话.md 25KB
API接口文档.md 14KB
舍不得_初版瞎造python_bean.md 7KB
说明.md 2KB
屏幕截图 2023-05-04 011949.png 1.44MB
屏幕截图 2023-05-04 012035.png 960KB
屏幕截图 2023-05-04 011853.png 789KB
屏幕截图 2023-05-04 012225.png 280KB
屏幕截图 2023-05-04 012148.png 235KB
屏幕截图 2023-05-04 012112.png 207KB
屏幕截图 2023-05-04 010056.png 114KB
屏幕截图 2023-05-04 005530.png 62KB
错误示范.png 44KB
导包报错信息.png 39KB
屏幕截图 2023-05-04 005814.png 36KB
屏幕截图 2023-05-04 011718.png 21KB
dao.py 28KB
views.py 16KB
models.py 13KB
OrderDao.py 7KB
Shopping_cartDao.py 6KB
UserDao.py 6KB
CommentDao.py 5KB
settings.py 4KB
question.py 4KB
tests.py 3KB
GoodsDao.py 3KB
Order.py 2KB
Shopping_cart.py 2KB
User.py 2KB
urls.py 2KB
service.py 1KB
Comment.py 1KB
urls.py 1KB
Good.py 1KB
Mini_entity.py 876B
UserService.py 760B
MysqlHelper.py 698B
manage.py 667B
views.py 599B
Meta.py 535B
0001_initial.py 535B
wsgi.py 399B
asgi.py 399B
models.py 305B
urls.py 256B
views.py 251B
apps.py 175B
apps.py 146B
admin.py 63B
admin.py 63B
tests.py 60B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
dao.cpython-311.pyc 32KB
views.cpython-311.pyc 23KB
models.cpython-311.pyc 16KB
settings.cpython-311.pyc 3KB
service.cpython-311.pyc 2KB
urls.cpython-311.pyc 2KB
urls.cpython-311.pyc 2KB
UserService.cpython-311.pyc 1KB
views.cpython-311.pyc 1KB
0001_initial.cpython-311.pyc 1018B
wsgi.cpython-311.pyc 711B
models.cpython-311.pyc 636B
views.cpython-311.pyc 633B
共 117 条
- 1
- 2
程序员张小妍
- 粉丝: 1w+
- 资源: 2599
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页