自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (7)
  • 收藏
  • 关注

原创 第20次:商品评价

payment应用views.py中定义OrderCommentView视图类在payment应用urls.py新增子路由商品详情页展示评价,之前已经在goods应用下views.py中定义好了评价信息的get查询,此处只要在goods应用下新增对应的子路由即可。提交商品评价的模板goods_judge.html

2025-09-07 16:34:11 900 1

原创 【无标题】

将刚才生成的应用公钥复制到应用公钥栏,点击“保存”按钮,将会生成支付宝公钥,复制支付宝公钥,在商城项目的payment应用下新建keys目录,并在该文件夹中创建alipay_public_key.pem和app_private_key.pem。在payment应用的views.py中定义PaymentView视图类,用于实现订单支付,接收页面点击“去支付”时发送的支付请求,根据order_id,创建支付对象,生成支付宝登录链接。配置子路由,在payment应用下创建urls.py,并增加子路由。

2025-09-07 16:32:26 397

原创 18.4 查看订单

users应用中的views.py中定义视图类UserOrderInfoView在users应用的urls.py中增加路由user_center_order.html最后,将其它模板中注释掉的查看订单的语句释放掉,即可看到查询订单的效果。

2025-09-07 16:27:36 602

原创 18.3 基于事务的订单数据保存与乐观锁

mysql提供两种锁的方式,悲观锁和乐观锁。悲观锁是在查询某条记录时对数据加锁,防止他人修改数据,这种处理方式会影响系统的并发量。乐观锁是在更新数据时通过条件判断来确定是否可以更新,如果条件正常,则更新;当某商品数量为15,用户A与用户B几乎同时尝试购买这一商品,用户A买8个,用户B买10个,他们查询到的数量都为15,看似都能买到,但他们两个用户的总数为18,超过了库存15。提交订单时,涉及到多个表的操作,任何一个环节出了问题,就会造成数据不一致的问题,有可能出现订单已经生成,但商品数量未减少的情况。

2025-09-07 16:25:50 185

原创 18.2 提交订单

订单基本信息模型及订单商品信息模型保存订单信息:用户点击“提交订单”按钮,页面订单中的数据被提交并保存到数据库中,在orders应用的views.py定义类视图OrderCommitView实现结算订单,继承LoginRequiredJSONMixin,以保证提交过程在用户已登录状态下进行。在orders应用下urls.py中增加保存订单的路由定义呈现订单提交成功的页面order_success.html定义上述页面对应的后端接口,在orders应用的views.py中定义类视图OrderSucce

2025-09-07 16:24:14 919

原创 18.1 订单结算

在orders应用的views中定义视图类OrderSettlementView,处理在订单应用urls.py中定义子路由在项目urls.py下增加根路由在模板templates根目录下增加place_order.html,用于展示确认收货地址、支付方式、商品列表、总金额等信息。解除cart.html中“去结算”按钮的注释。

2025-09-07 16:21:17 666

原创 17.5 展示购物车缩略信息

将index.html list.html detail.html三个页面中之前补注释掉的“我的购物车”解注,鼠标移到上面就可看到效果。展示购物车缩略信息使用GET方式向后端发请求,获取 redis 和cookie中的购物车数据,不需要请求参数。在商城首页、商品列表页、商品详情“我的购物车”,鼠标悬停时,以下拉框形式展示购物车缩略信息。在carts应用views.py中增加CartsSimpleView视图类。在carts应用下urls.py中新增路由。

2025-08-17 20:39:54 226

原创 17.4 合并购物车

用户登录后,将Cookie中的购物车商品合并到redis数据库中。如果此时redis中已经有相同id的商品,则使用Cookie中的数据覆盖redis中的数据。合并功能需要在用户登录后实现,但登录视图中应避免过多与登录逻辑无关的逻辑,所以考虑对合并功能封装成一个函数,在登录视图中调用。在登录视图类LoginView中,登录成功后调用上述合并函数,LoginView视图类全部代码如下。在carts应用下创建utils.py文件,在utils.py中定义合并购物车功能的函数。

2025-08-16 19:14:28 197

原创 17.3 全选购物车

登录状态下,用户勾选购物车页面的“全选”时,将购物车中所有商品的sku_id放在set集合, 再发送到前端;反选时,移除集合中的所有商品。在carts应用views.py中新增如下视图类。在carts应用下urls.py本新增路由。未登录状态下,逻辑一致。

2025-08-16 18:03:28 184

原创 17.3 删除购物车商品

在carts应用下视图类CartsView中增加delete方法,全部代码为。测试:在购物车商品列表页,点击“删除”即可删除商品,总金额同步更新。删除购物车中的商品,需要接收sku_id,以JSON来响应。

2025-08-15 17:09:11 215

原创 17.2 修改购物车商品

需要更新的数据为sku_id,count , selected几个参数。carts应用下views.py中增加put方法,修改后的全部代码如下。因只是对购物车中的商品数据进行修改,所以请求方式为put。在carts应用下定义constants.py,存放常量。

2025-08-14 22:18:33 197

原创 17.1 添加与查询购物车

购物网站应提供用户已登录或未登录状态下都能添加商品到购物车的功能,所以两种状态要采用两种不同的实现方式。登录状态:可根据用户id保存用户勾选的商品,考虑到购物车数据量小,且更新频繁,所以采用redis来存储。redis提供的数据类型有:string hash list语法格式为:​ 实现购物车视图类Carts.py,post请求用于提交购物车数据,get请求用于查询购物车数据。前端页面cart.html配置路由carts应用下urls.py配置根路由,项目下urls.py下增加如下配置模式

2025-08-14 12:22:59 497

原创 第16次:用户浏览记录

用户的浏览历史应存放在基于内存的redis,而非基于磁盘的mysql中,所以需要配置存放浏览历史的redis 3号缓存库。第3步:在users应用下urls.py增加路由模式。在users/views.py中增加如下代码。第1步:配置redis缓存。第2步:保存与查询浏览记录。

2025-07-21 18:26:19 205

原创 第15次:商品搜索

实现用户在页面可自由搜索某个商品的功能。第1步:准备搜索功能用到的库whoosh是搜索引擎,对英文支持较好,但对中文效果不佳。jieba为中文分词库,弥补whoosh的缺陷。django-haystack为在django项目中使用搜索引擎的工具应用,通过它可以在不修改代码的情况下使用不同的搜索引擎。第2步:在settings.py中添加haystack应用第3步:在settings.py中新境搜索引擎whoosh的配置项第4步:将Whoosh自带的分词组件替换为jieba在虚拟环境下(.ve

2025-07-21 18:22:23 660

原创 第14次:商品列表、热销商品及详情

第1步:定义获取商品列表的视图类ListView,本视图中完成了如下功能:在goods应用下定义constants.py,其中定义常量上面代码中用的函数定义在goods/utils.py中,参数为类别对象。第2步:定义热销排行视图类,用于展示与商品列表同类别的、销量前2名的商品,第3步:定义展示商品详情的视图类,获取用户点击的商品。第4步:定义订单评价视图类,查询某个商品的评价信息,由于尚未完成订单的支付功能,系统中没有订单信息,所以这里是查询不到评价的。第5步:订单商品模型,定义在orders

2025-06-21 11:24:56 839

原创 第13次01:广告及商品数据呈现

第1步:在contents应用models.py中定义广告内容类别模型和广告内容模型第2步: 在goods应用models.py中定义商品类别模型、商品频道模型、商品频道组模型、商品品牌模型、SPU模型、SKU模型、SPU规格模型、SKU规格模型、SKU图片模型、规格选项模型等共9个模型。生成迁移文件、执行迁移文件。第3步:在contents应用下views.py配置视图函数,OrderedDict类是特殊的字典,说明如下第4步:contents应用下urls.py中配置路由第5步:导入模板完整的i

2025-06-08 15:50:26 1022

原创 第12次13: 修改登录密码

第1步:在users应用views.py中定义修改密码的视图第2步:导入模板文件user_center_pass.html第3步:在users应用下配置路由

2025-06-02 22:04:20 733

原创 第12次12: 修改和删除收货地址

第1步:在users应用下views.py中新增实现修改收货地址的视图类。第2步:在users应用下配置路由。

2025-06-02 22:03:00 308

原创 第12次11: 修改地址标题

第1步:在users应用下views.py中新增更新地址标题的视图类。第2步:在users应用下配置路由。

2025-06-02 22:01:01 143

原创 第12次10: 设置默认地址

第1步:在users应用views.py中新增。第2步:在users应用下配置路由。

2025-06-02 21:59:57 138

原创 第12次09:展示收货地址和新增地址

第1步:定义地址模型,考虑到地址模型中的创建时间与更新时间在后续其它模型中也会用到,所以先定义一个包含创建时间和更新时间的基础模型BaseModel.py,其它模型通过继承它来获取创建时间和更新时间属性。在utils包中创建models.py,并定义BaseModel模型第2步:在users应用的下的models.py创建地址模型,此模型继承BaseModel,注意Address模型在放在User模型的下面,否则无法正确使用Use的模型作为外键第3步:在User模型中添加默认收货地址的字段default

2025-06-02 21:58:41 781

原创 第12次08附件:省、市、区县三级行政区划数据库表

INSERT INTO `tb_areas` VALUES ('622927', '积石山保安族东乡族撒拉族自治县', '622900');INSERT INTO `tb_areas` VALUES ('530827', '孟连傣族拉祜族佤族自治县', '530800');INSERT INTO `tb_areas` VALUES ('653000', '克孜勒苏柯尔克孜自治州', '650000');

2025-05-27 08:47:44 823

原创 第12次08: 省市县区三级联动收货地址

第1步:在areas应用下models.py中定义地区模型类。第3步:将areas.sql文件导入数据库。第5步:配置根路由和areas应用子路由。第4步:在areas应用下,定义视图。第2步:生成迁移文件和执行迁移文件。

2025-05-26 19:02:55 235

原创 第12次07 :邮箱的验证

登录QQ邮箱—点击右上角“设置”—点击左下角“账号与安全”—点击左侧“安全设置”—找到“POP3/IMAP/SMTP/Exchange/CardDA服务"选项,按提示步骤开启SMTP服务,需要发送两个手机验证码。第7步:在users应用下utils.py中定义生成邮箱验证url的函数和反序列化的函数。第3步:定义发送邮件的函数,在users应用下创建emails.py,并定义函数。第6步:定义验证邮箱的链接部分的固定串和有效期,在dev.py中。第9步:views.py中定义验证邮箱的类视图。

2025-05-26 19:00:23 350

原创 第12次06 :用户中心添加邮箱

第一步:定义用于保存邮箱信息的视图,由于需要用户登录之后才能添加邮箱,所以在前后端交互时要先进行用户登录状态的验证(因会过期),数据交互使用json。在xiaoyumall/utils下创建views.py,并定义限制用户访问类。第三步:调整session时长,验证。继承这个类即可实现登录状态的验证。

2025-05-26 18:58:11 340

原创 第12次05: 用户中心-用户基本信息

第一步:未登录时,访问需要用户认证的页面时,需要跳转到登录页,在dev.py中配置第二步:登录后的重定向,如果刚才未登录的情况下,要访问用户中心页面,会直接跳转到登录页面,此时输入用户名密码之后会直接跳转到用户中心页面。LoginView.py第三步:创建用户中心视图类第四步:User模型中增加邮箱字段第五步:用户中心页面user_center_info.html第六步:配置路由第七步:index.html中把用户中心的注解去掉

2025-05-26 18:56:16 1108

原创 第12次03 :登录状态的保持

需要在RegisterView视图的post()方法中增加调用login()函数的代码,增加后如下。函数封装了将用户信息写入session的操作,便于快速实现登录并保持其登录状态。启动redis-cli.exe,选择1号库,可查到。第二步:记住登录状态,LoginView视图新增。新增后完整LoginView。第一步:用户注册的状态保持。

2025-05-26 18:54:22 230

原创 第12次04 :首页展示用户名

第三步:在users应用中增加退出登录的视图类,完成清除cookie和重定向到首页的逻辑,并配置路由。登录后,跳转到首页,首页会展示用户名;未登录时,首页将展示登录与注册的选项。第二步:补充后端代码,在登录与注册视图中增加设置cookie的语句。配置路由,users应用下子路由新增。第一步:index.html。

2025-05-26 18:52:57 553

原创 第16次(简要版)-支付与订单

1、在goods/models.py中,新增模型OrderInfos模型2、将模型注册到后台管理系统中,打开goods应用下的admin.py文件,添加内容如下admin.site.register(OrderInfos)3、生成迁移文件并执行迁移,python manage.py makemigrationspython manage.py migrate查看数据库可发现新表goods_orderinfos1、在templates文件夹下新建orderinfo.html,代码如下:2、修改

2025-05-20 08:40:18 835

原创 第15次(简要版)-购物车

4、修改auth_app的登录视图,为当前用户添加cookie,以获取当前用户的购物车信息,cookie详细介绍参考第八章用户验证系统PPT,auth_app/views.py。7、同时,在goods应用下的views.py文件文件中,新增 addcart()和delt()方法。2、将模型注册到后台管理系统中,打开goods应用下的admin.py文件,添加内容如下。2、在goods/urls.py,添加购物车carts路径。3、在goods/views.py,定义购物车视图。3、生成迁移文件并执行迁移,

2025-05-20 08:37:56 843

原创 第14次(简要版)-商品详情

1、在goods/models.py中,新增模型Guige_leixing、Guige,Guige_leixing模型代码放在shangpin模型上方,否则可能提示Guige_leixing不存在,2、修改模版文件夹下的index.html,为base.html的子模版,同时新增了一个导航栏用于显示商品类别,可进行检索。3、为了实现商品类别检索,需在goods应用下的views.py文件,新增相应视图函数。4、同时,在goods应用下的urls.py文件文件中,新增相应路由规则。商品规格、商品规格类型。

2025-05-20 08:36:23 1141

原创 第13次(简要版)-商品展示

打开浏览器输入:http://127.0.0.1:8000/admin/,进行管理员登录,查看已注册的数据库表。static用于存储不经常变化的资源,如系统图标,media可用于存储经常变化的资源,如上传的图片。(1)static 静态资源配置,在settings.py文件中添加:(注:若已存在无需添加)访问浏览器,http://127.0.0.1:8000/index/,可以看到静态页面即成功。将模型注册到后台管理系统中,打开goods应用下的admin.py文件,添加内容如下。密码:123456;

2025-05-20 08:34:58 923

原创 第12次(简要版)-登录与退出

判断用户是否登录, 如果用户没有登录, 默认会跳转到’/accounts/login/‘,并且URL会自动加上你请求的url作为登录后的跳转地址, 如:’/accounts/login/?next=/user/address/‘登入完后会去请求’/user/address/', 如果登录了, 会正常执行。在应用auth_app下的路由文件中urls.py文件中新增路由规则。auth_app/urls.py文件中添路径。auth_app/urls.py文件中添路径。(2)修改未登录时默认跳转的地址。

2025-05-14 07:19:14 874

原创 第12次02:小鱼商城-手机号登录

Django框架自带的authenticate()方法只支持使用用户名登录,其内部通过backend对象的authenticate()方法获取用户;若要使用手机号登录,需要重写backend对象的authenticate()方法。第一步:在users下定义utils.py,在其中定义get_user_by_account()方法,用于识别用户输入的是用户名还是手机号。第二步:在上一步的utils.py中自定义backend类,并重写authenticate()方法。

2025-05-13 10:22:41 249

原创 第12次01:小鱼商城-用户名登录

本节内容视频地址:https://www.bilibili.com/video/BV1BLEJzUEFn/users应用子路由新增。

2025-05-13 10:17:08 365

原创 第11次:用户注册(完整版)

上面代码用的状态码定义在xiaoyu_mall/xiaoyu_mall/utils/response_code.py中。图形验证码要存在redis数据库中,在xiaoyu_mall/dev.py配置使用redis的2号库存图形验证码。第二步:在配置文件中配置自定义User模型类,用自定义的User模型类代替Django自带的User模型类。在verifications应用下views.py定义生成图形验证码的类视图。在verifications应用中创建verify_pic.py。第一步:定义用户模型类。

2025-05-06 13:23:40 552

原创 第11次:用户注册(简要版)

在templates文件夹下边新建register.html,代码如下:2、定义对应的视图类在auth_app/views.py文件中定义处理用户注册请求的视图类RegisterView(),分别处理浏览器发起的GET请求和POST请求。处理get请求。当后端接收到用户通过浏览器发起的get请求后,调用RegisterView()里的get()方法处理GET请求,并返回register.html页面。注册数据通过前端校验之后,用户单击注册按钮,浏览器会向后端发送POST请求,Django接收注册页

2025-05-06 13:21:27 634

原创 第10次:电商项目配置开发环境

第三步:在jinja2中引用静态文件和在页面中对url反向解析相对复杂,这里通过自定义的方式将引用静态文件和反向解析两个操作与Django引擎下的操作保持一致。第三步:测试,运行项目,浏览器输入http://127.0.0.1:8000/static/images/adv01.jpg,若可访问到静态图片,说明配置成功。开发环境用于日常开发,生产环境用于线上部署,为避免单个环境下相互干扰,考虑将二者分开,须完成两步操作。第三步:配置redis数据库,在dev.py与prod.py中。

2025-04-29 17:31:55 1658

原创 第9次:身份验证

本节的知识点将会在项目的用户注册与登录环节使用。

2025-04-22 11:20:33 1071

原创 第8次:表单集

从以上示例可以看出,如果想要把页面提交的表单从2个变成3个,既要修改视图函数,又要修改HTML页面,耦合度较高,不利于扩展。表单集即多个表单的集合,从此处可以看出表单集(FormSet)由表单(Form)构成。通过表单集,可一键添加多个表单的数据,如在一个页面一键提交多个用户或商品的信息。第二步:定义视图函数,这里通过for循环一次性处理了所有的表单数据,处理更简单。第一步:应用form01下,创建forms.py模块,在其中定义表单类。第一步:froms应用下forms.py中创建表单。

2025-04-14 11:56:06 387

Django商城项目模板及静态资源(css+js+图片)

Django商城项目模板及静态资源(css+js+图片)

2025-06-02

Android 面试题(有详细答案)

Android 面试题,这里是一份很好的面试题,里面有java基础和android。也有详细的答案,看着很方便。

2011-04-14

500个c语言学习过程中的常见问题

这里有500个c语言学习过程中的常见问题,基本可以对付在学习过程中的所遇到的问题。

2009-01-17

eclipse+CDT配置说明

大家都知道eclipse是一个很好用的集成开发工具,用来开发java程序是极方便的,很多人不知道还可以用它来开发C,这个文档就是介绍这方面的知识的。

2010-01-16

TitleView控件

在Android应用当中一般都会有一个标题栏,标题左边和右边各一个按钮。 我这里做了一份源码,参考网上一哥们的例子,做了一点优化。

2014-10-10

c语言函数库仅供参考

这些材料可以方便同学的c语言的学习,我是从老师那找到的。

2009-01-17

android实验源码

这是第三版HelloAndroid一书的源码,很好用,用得着的朋友可以下载。

2011-03-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除