![](https://img-blog.csdnimg.cn/20181211201730772.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
django项目开发--电商网站
创建项目工程到部署
bug_fu
关键字:软件测试、爬虫、Web开发
展开
-
二十九、登陆时购物车合并(商品部分)
1、重写登录功能的业务逻辑在users/下添加merge_cart_cookie_to_redis合并购物车的方法import pickleimport base64from django_redis import get_redis_connectiondef merge_cart_cookie_to_redis(request, user, response): ""...原创 2018-11-30 04:19:28 · 1383 阅读 · 0 评论 -
二十八、购物车功能实现(商品部分)
1、更改dev配置因为前端可能携带cookie,为了保证跨域请求中,允许后端使用cookie,确保在配置文件有如下设置CORS_ALLOW_CREDENTIALS = True2、创建购物车应用carts(apps/)python ../../manage.py startapp carts3、在dev中注册应用和配置redis数据库INSTALLED_APPS = [ '...原创 2018-11-30 03:07:52 · 286 阅读 · 0 评论 -
二十七、用户中心浏览记录展示(用户部分)
1、修改goods/views下SKUHistoryView类class SKUHistoryView(CreateAPIView): """ 保存和获取用户浏览历史记录 """ serializer_class =原创 2018-11-30 01:03:57 · 295 阅读 · 0 评论 -
二十六、用户浏览记录(商品部分)
1>用户在访问每个商品详情页面时,都要记录浏览历史记录2>历史记录只需保存多个商品的sku_id即可,而且需要保持添加sku_id的顺序,所以采用redis中的列表来保存,redis的数据存储设计-----‘history_用户id’: [sku_id列表]1、在配置文件中增加浏览历史记录的redis配置CACHES = { ... "history": {...原创 2018-11-30 00:37:23 · 600 阅读 · 0 评论 -
二十四、搜索引擎功能实现(商品部分)
1、搜索引擎的配置<1>用Docker安装Elasticsearch及其扩展获取镜像,可以通过网络pullsudo docker image pull delron/elasticsearch-ik:2.4.6-1.0# 或者加载提供给大家的镜像文件sudo docker load -i elasticsearch-ik-2.4.6_docker.tar将资料中的e...原创 2018-11-29 18:40:02 · 651 阅读 · 1 评论 -
二十三、分类商品列表信息的查询及分页过滤排序(商品部分)
1、实现分类商品列表数据的查询<1>创建CategoryListView视图(apps/goods/views)from rest_framework.generics import ListAPIViewfrom goods.models import GoodsCategory, SKUfrom goods.serializers import CategoryListSe...原创 2018-11-29 10:33:04 · 1607 阅读 · 0 评论 -
二十二、面包屑导航功能的实现(商品部分)
1、创建CategoryView视图类from django.shortcuts import renderfrom rest_framework.response import Responsefrom rest_framework.views import APIViewfrom goods.models import GoodsCategoryclass CategoryView...原创 2018-11-29 09:56:00 · 833 阅读 · 0 评论 -
二十一、商品分类数据静态化(商品部分)
1、商品分类数据静态化(在apps/goods/下新建utils.py),<1>封装获取商品分类菜单数据方法def get_categories(): """ 获取商城商品分类菜单 :return 菜单字典 ""&原创 2018-11-28 20:51:19 · 791 阅读 · 0 评论 -
二十、定时任务的配置及使用(商品部分)
对于首页的静态化,考虑到页面的数据可能由多名运营人员维护,并且经常变动,所以将其做成定时任务,即定时执行静态化。在Django执行定时任务,可以通过django-crontab扩展来实现。1、安装及配置<1>安装pip install django-crontab<2>添加应用INSTALLED_APPS = [ ... 'django_...原创 2018-11-28 18:01:13 · 397 阅读 · 0 评论 -
十九、网站首页页面静态化(商品部分)
商城的首页频繁被访问,为了提升访问速度,除了我们之前已经学过的使用缓存技术外,还可以使用页面静态化技术。1、页面静态化的简介 页面静态化即将动态渲染生成的页面结果保存成html文件,放到静态文件服务器中。用户访问的时候访问的直接是处理好之后的html静态文件。对于页面中属于每个用户展示不同数据内容的部分,可以在用户请求完静态化之后的页面后,在页面中向后端发送请求,获取属于用户的特殊的...原创 2018-11-28 14:35:51 · 383 阅读 · 0 评论 -
十八、注册超级用户和添加测试数据(商品部分)
1、创建超级管理员python manage.py makesuperuser2、在admin中注册模型类在广告内容contents应用的admin.py中注册模型类from django.contrib import adminfrom . import modelsadmin.site.register(models.ContentCategory)admin.site...原创 2018-11-28 10:55:43 · 276 阅读 · 0 评论 -
十七、CKEditor富文本编辑器(商品部分)
在运营后台,运营人员需要录入商品并编辑商品的详情信息,而商品的详情信息不是普通的文本,可以是包含了HTML语法格式的字符串。为了快速简单的让用户能够在页面中编辑带格式的文本,我们引入富文本编辑器。富文本即具备丰富样式格式的文本。我们使用功能强大的CKEditor富文本编辑器。1. 安装pip install django-ckeditor2. 添加应用(在INSTALLED_APP...原创 2018-11-27 18:02:48 · 254 阅读 · 2 评论 -
十六、FastDFS客户端与自定义文件存储系统(商品部分)
1. FastDFS的Python客户端python版本的FastDFS客户端使用说明参考链接&amp;lt;1&amp;gt;安装安装提供给大家的fdfs_client-py-master.zip到虚拟环境中pip install fdfs_client-py-master.zippip install mutagenpip install requests&amp;lt;2&amp;gt;使用使用...原创 2018-11-27 16:55:23 · 336 阅读 · 0 评论 -
十五、使用Docker安装FastDFS(商品部分)
1、 在Ubuntu中安装Docker&amp;amp;lt;1&amp;amp;gt;在Ubuntu中使用源码安装Docker:进入到源码文件夹中sudo apt-key add gpgsudo dpkg -i docker-ce_17.03.2~ce-0~ubuntu-xenial_amd64.deb&amp;amp;lt;2&amp;amp;gt;检查Docker CE是否安装正确 sudo docker run hel原创 2018-11-27 09:31:59 · 245 阅读 · 1 评论 -
十四、docker简介及使用(内容补充)
1、Docker简介&amp;amp;amp;lt;1&amp;amp;amp;gt;Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。&amp;amp;amp;lt;2&amp;amp;amp;gt;容器与管理程序虚拟化 (hypervisor virtualizat原创 2018-11-26 21:38:56 · 182 阅读 · 1 评论 -
十三、创建商品模型类和广告模型类(商品部分)
1、新建商品应用和广告应用(meiduo_mall/apps/)&lt;1&gt;新建广告应用# 在ubuntu终端cd 到apps目录下python ../../manage.py startapp contents&lt;2&gt;新建商品应用python ../../manage.py startapp goods2、创建商品模型类和广告模型类&lt;1&gt;创建商原创 2018-11-26 09:25:04 · 328 阅读 · 1 评论 -
十二、用户中心(用户部分)
1、用户信息展示&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;1&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;用户模型类添加email_active字段,邮箱校验状态email_active = models.BooleanField(default=True, verbose_name='邮箱验证状态')&amp;amp;amp;am原创 2018-11-24 12:18:19 · 1762 阅读 · 1 评论 -
十一、实现QQ登陆(第三方的登陆)(用户部分)
开发者通过以下几个步骤,即可接入互联开放平台:注册开发者→创建应用→通过审核并获取接口权限1、注册开发者和创建应用&amp;amp;amp;amp;lt;1&amp;amp;amp;amp;gt;若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现。注册方法可参考链接http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85成为QQ互联开发者后,还需创建应用...原创 2018-11-23 13:47:41 · 725 阅读 · 1 评论 -
十、表单登陆(支持手机号和用户名登陆)的实现(用户部分)
1、表单登陆&lt;1&gt;Django REST framework JWT提供了登录签发JWT的视图,可以直接使用 from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ url(r'^authorizations/$', obtain_jwt_token), ]ps:但是默认的返回...原创 2018-11-20 17:28:05 · 1155 阅读 · 1 评论 -
九、通过使用jwt模块实现状态保持(用户部分)
1、在虚拟环境中安装Django REST framework JWTpip install djangorestframework-jwt2、在settings/dev的配置文件配置REST_FRAMEWORK = { # 认证配置 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentic...原创 2018-11-19 23:51:00 · 492 阅读 · 1 评论 -
八、注册功能的实现(用户部分)
1、序列化器字段的定义&amp;amp;lt;1&amp;amp;gt;在meiduo_mall/meiduoz-mall/apps/users/目录下创建serializers模块&amp;amp;lt;2&amp;amp;gt;序列化器字段的定义from rest_framework import serializersfrom users.models import Userclass UserSerializer(seri原创 2018-11-19 19:34:57 · 445 阅读 · 1 评论 -
七、判断用户名和手机号是否已经注册(用户部分)
1、用户名的判断&amp;lt;1&amp;gt;注册子路由urlpatterns = [ # 获取数据,正则校验数据 url(r&quot;^usernames/(?P&amp;lt;username&amp;gt;\w+)/count/$&quot;, views.UserNameView.as_view()) ]&amp;lt;2&amp;gt;视图原创 2018-11-19 08:59:40 · 2852 阅读 · 1 评论 -
六、 域名的设置,跨域问题的解决(用户部分)
1、域名设置&amp;amp;lt;1&amp;amp;gt;打开etc/下的hosts文件sudo vim etc/hosts&amp;amp;lt;2&amp;amp;gt;添加域名和对应的iP127.0.0.1 api.meiduo.site127.0.0.1 www.meiduo.site &amp;amp;lt;3&amp;amp;gt;vim文本编辑i # 进入编辑原创 2018-11-19 08:48:07 · 991 阅读 · 1 评论 -
五、短信验证的实现(用户部分)
《优化程序注意点》 &amp;amp;amp;lt;1&amp;amp;amp;gt;频繁请求的控制 &amp;amp;amp;lt;2&amp;amp;amp;gt;使用管道减少redis数据库建立连接次数 &amp;amp;amp;lt;3&amp;amp;amp;gt;使用celery异步任务发送短信减少等待时间1、创建视图类并注册路由&amp;amp;amp;lt;1&原创 2018-11-18 19:22:51 · 400 阅读 · 1 评论 -
四、创建模用户型类(用户部分)
1、根据django提供的用户模型类创建用户模型类from django.contrib.auth.models import AbstractUser# Create your models here.class User(AbstractUser): mobile = models.CharField(max_length=11,unique=True) class M...原创 2018-11-18 19:16:51 · 234 阅读 · 1 评论 -
三、项目工程配置(项目准备)
1、设置项目配置文件&amp;amp;lt;1&amp;amp;gt;在项目同名文件meiduo_mall下新建python包settings。&amp;amp;lt;2&amp;amp;gt;在settings包下新建dev.py和prod.py文件,分别作为项目的开发模式和生产模式下的配置文件。&amp;amp;lt;3&amp;amp;gt;将原有的settings文件下的内容复制到dev.py原创 2018-11-18 19:13:41 · 534 阅读 · 3 评论 -
二、创建数据库并分配操作权限(项目准备)
1、创建数据库&amp;lt;1&amp;gt;进入数据库mysql -u root -p mysql&amp;lt;2&amp;gt;查看数据库,并创建新的数据库show databases; #查看数据库create database meiduo32 charset=utf8;2、分配数据管理权限&amp;lt;1&amp;gt;创建管理用户和密码# 创建用户账号 meiduo原创 2018-11-18 19:07:37 · 292 阅读 · 1 评论 -
一、项目工程创建(项目准备)
1、在git平台创建工程&amp;amp;amp;amp;amp;lt;1&amp;amp;amp;amp;amp;gt;填写项目信息并创建项目&amp;amp;amp;amp;amp;lt;2&amp;amp;amp;amp;amp;gt;复制远程仓库链接2、克隆远程项目&amp;amp;amp;amp;amp;lt;1&amp;amp;amp;amp;amp;gt;新建虚拟环境原创 2018-11-18 18:59:27 · 433 阅读 · 1 评论