All Projects → ScrappyZhang → Ecommerce_website_development

ScrappyZhang / Ecommerce_website_development

Licence: bsd-2-clause
本项目基于Django1.8.2等来开发一个电商平台,可实现注册、登录、浏览、购买、支付等全部常用功能。

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ecommerce website development

Banking System
A banking System Created Using Django Python Web Framework
Stars: ✭ 105 (-57.32%)
Mutual labels:  redis, django, celery
Dailyfresh
Django-天天生鲜电商学习项目
Stars: ✭ 127 (-48.37%)
Mutual labels:  redis, django, celery
Django School Management
Deployment Ready Developer to Developer Full-stack School Management System with payments, e-admission, result management, academic functionalities, and much more implemented in a simple way.
Stars: ✭ 151 (-38.62%)
Mutual labels:  redis, django, celery
Docker Django
A complete docker package for deploying django which is easy to understand and deploy anywhere.
Stars: ✭ 378 (+53.66%)
Mutual labels:  redis, django, celery
Docker Django Example
A production ready example Django app that's using Docker and Docker Compose.
Stars: ✭ 86 (-65.04%)
Mutual labels:  redis, django, celery
Website
django 开发的BBS博客项目, 此项目包含多用户注册,话题模块,发布文章,文章评论,课程、社区BBS以及消息提示,关注,采用邮箱注册,激活验证登录,以及QQ注册登录,招募作者发布教程在后台管理系统发布, pc采用模板渲染,cms采用vue drf前后分离,登录采用JWT认证登录、移动端采用react开发,
Stars: ✭ 217 (-11.79%)
Mutual labels:  redis, django, celery
Dailyfresh B2c
dailyfresh mall based on B2C model
Stars: ✭ 177 (-28.05%)
Mutual labels:  redis, django, celery
Playlistor
🎶Apple Music ↔️ Spotify playlist convertor.
Stars: ✭ 95 (-61.38%)
Mutual labels:  redis, django, celery
Chain
链喵 CMDB 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Stars: ✭ 240 (-2.44%)
Mutual labels:  redis, django, celery
Fastapi Celery
Minimal example utilizing fastapi and celery with RabbitMQ for task queue, Redis for celery backend and flower for monitoring the celery tasks.
Stars: ✭ 154 (-37.4%)
Mutual labels:  redis, celery
Visual Chatbot
☁️ 👀 💬 Visual Chatbot
Stars: ✭ 161 (-34.55%)
Mutual labels:  redis, django
Docker Flask Celery Redis
Docker-Compose template for orchestrating a Flask app with a Celery queue using Redis
Stars: ✭ 165 (-32.93%)
Mutual labels:  redis, celery
Pychat
webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing
Stars: ✭ 152 (-38.21%)
Mutual labels:  redis, django
Django Guid
Inject an ID into every log message from a Django request. ASGI compatible, integrates with Sentry, and works with Celery
Stars: ✭ 166 (-32.52%)
Mutual labels:  django, celery
Django Celery Docker Example
Example Docker setup for a Django app behind an Nginx proxy with Celery workers
Stars: ✭ 149 (-39.43%)
Mutual labels:  django, celery
Django Pushy
Your push notifications handled at scale.
Stars: ✭ 168 (-31.71%)
Mutual labels:  django, celery
Django instagram
Photo sharing social media site built with Python/Django. Based on Instagram's design.
Stars: ✭ 165 (-32.93%)
Mutual labels:  redis, django
Repoll
Redis管理平台Repoll,现已开源,基于redis3.x,支持单机、哨兵以及集群模式
Stars: ✭ 196 (-20.33%)
Mutual labels:  redis, django
Django2 dailyfresh
dailyfresh电商项目,替换django框架为2.X并重构,美化了下后台管理页面,提供docker版本,该项目包含了实际开发中的电商项目中大部分的功能开发和知识点实践, 是一个非常不错的django学习项目,同时也记录在替换框架中遇到的坑,希望对各位的学习有所帮助。
Stars: ✭ 212 (-13.82%)
Mutual labels:  redis, celery
Opensa
资产管理、资产采集、灰度发布、反向代理、批量任务、任务编排、计划任务、日志审计、权限管理、角色管理、部门管理、运维自动化
Stars: ✭ 220 (-10.57%)
Mutual labels:  django, celery

ecommerce_website_development

本项目基于Django1.8.2等来开发一个电商平台,可实现注册、登录、浏览、购买、支付等全部常用功能。

运行方式:

修改如下文件的名称:去掉.example

  • 修改settings.example.pysettings.py并将相关参数设置为本地参数
  • 修改alipay_public_key_.pemapp_private_key.pem为自己的
  • 修改client.conf为自己的FastDFS系统客户端配置文件(需要自行配置Fast DFS)
  • 修改uwsgi.ini为自己的设置

重点内容有:

  • Redis实现购物车记录存储
  • Redis实现最近浏览记录存储
  • 发送注册邮件以Celery异步操作实现
  • 网站优化之首页动态页面静态化——以Celery异步操作实现
  • 网站优化之首页缓存——Redis存储
  • 分布式存储系统FastDFS存储网站商品图片——自定义存储器类
  • 商品搜索框架haystack
  • 订单并发库存问题之悲观锁与乐观锁
  • 自定义管理器实现快速查询数据
  • 采用Django内置的认证系统进行登录校验——自定义用户类、校验装饰器
  • session基于Redis存储
  • 支付宝接口

详细代码说明

运行环境:

见requirements.txt:运行如下命令可安装

pip install -r requirements.txt

amqp==2.2.2 anyjson==0.3.3 billiard==3.5.0.3 celery==4.1.0 certifi==2018.1.18 chardet==3.0.4 Django==1.8.2 django-bootstrap3==9.1.0 django-celery==3.2.2 django-celery-results==1.0.1 django-haystack==2.7.0 django-redis==4.7.0 django-tinymce==2.7.0 fdfs-client-py==1.2.6 idna==2.6 itsdangerous==0.24 jieba==0.39 kombu==4.1.0 mutagen==1.40.0 Pillow==5.0.0 pycryptodomex==3.5.1 PyMySQL==0.8.0 python-alipay-sdk==1.7.0 pytz==2018.3 redis==2.10.6 reportlab==3.4.0 requests==2.18.4 urllib3==1.22 uWSGI==2.0.17 vine==1.1.4 Whoosh==2.7.4

代码中未有的常见问题:

一个常见的问题: mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据:

相关知识点:

  • redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。
  • redis常见的六种淘汰策略:
    • volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰;
    • volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰;
    • volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰;
    • allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰;
    • allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰;
    • no-enviction(驱逐):禁止驱逐数据。

限制用户短时间内登录次数的问题:

"""用列表实现:列表中每个元素代表登陆时间,只要最后的第5次登陆时间和现在时间差不超过1小时就禁止登陆"""
"""
请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次
"""
import redis
import sys
import time

r = redis.StrictRedis(host='127.0.0.1', port=6379, db=1)
try:
    id = sys.argv[1]
except:
    print('input argument error')
    sys.exit(0)
# 将每次登陆的时间存入redis的名为login_item列表中,判断列表元素个数是否已达到5并且和第一次登录时间比较是否在一个小时以内。
if r.llen('login_item') >= 5 and (time.time() - float(r.lindex('login_item', 4)) <= 3600):
    print('you are forbidden logining')
else:
    print('you are allowed to login')
    r.lpush('login_item', time.time())
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].