1 Star 0 Fork 0

wywinstonwy / mall_project

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

一、环境配置,开发环境和线上环境 新建setting包并且重建环境文件,开发环境在manager中加载,生产环境在wsgi文件中加载 manger.py-> os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'nxh_mall.settings.dev') wsgi.py-> os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'nxh_mall.settings.prod')

二、修改模板引擎为jinja2,在settings中配置,并新建templates,mark as templates系统会自动提示

三、补充jinja2模板引擎,并 重新定义文件查找, 创建jinja2环境模板

四、设置数据库 settign中修改配置文件database 设置数据库驱动,在工程路径init中 pymysql.install_as_MySQLdb() 创建数据库以及账号密码 create database nxh_mall charset=utf-8; 创建mysql账号: https://www.cnblogs.com/flying1819/articles/9077059.html create user nxh identified by '123456'; 授权nxh用户访问权限 nxh_mall.* 指的所有表, 'nxh'@'%' %表示所有电脑 grant all on nxh_mall. to 'nxh'@'%'; 刷新授权数据库 flush privileges

五、redis环境配置 安装django-redis扩展 settings中配置redis配置 https://django-redis-chs.readthedocs.io/zh_CN/latest/ 可以配置多个redis数据库缓存位置

六、配置日志 settings中具体配置日志器 日志器的使用 import logging logger = logging.getLogger('django') logger.debug('debug log测试') logger.info('info log 测试') logger.error('error log 测试')

忽略log日志文件,但是希望空目录被git管理,在空目录中新建.gitkeep文件

七、配置前台静态文件 http://localhost:8001/favicon.ico STATIC_URL = '/static/' STATICFILES_DIRS =[ os.path.join(BASE_DIR,'static') ] 测试:http://localhost:8001/static/images/huodong.png 八、创建子应用 在工程应用下建立apps包管理 并且cd到apps中 python ../../manage.py startapp users 创建users子应用

九、用户授权和认证系统 django默认认证系统: django.contrib.auth 包含认证的核心框架和默认模型 django.contrib.contenttypes 是django内容类型系统,他允许权限与你的模型关联 django认证同时处理认证和授权: 认证:验证一个用户是否他声称的那个人,可用户登录 授权:授权决定一个通过了认证的用户允许做什么 django认证系统包含的内容: 用户:用户模型类,用户认证 权限:标识一个用户可以做一个特定的任务,cms系统会用到 组:对多个具有相同权限的用户进行统一管理,cms系统会用到 密码:一个可配置的密码哈希系统,设置密码,密码授权 注册用户方式 user = User.objects.create_user(username=usernam,password=password,**kwargs) 认证用户的方法,用于登录系统 from django。contrib.auth import authenticate user = authenticate(username=username,password=password) 设置处理秘密的方法 设置密码:set_password(raw_password) 校验密码:check_password(raw_password)

自定义多账号登录 设置settings:AUTHENTICATION_BACKENDS = ['users.utils.UserNameMobileBackend'] 重写ModelBackend类中 authenticate 方法

自定义用户模型,并迁移

十、用户登录系统 login()位置 django.contrib.auth.init.py --->login(request,user,backend=None)

将session保存到系统中 SESSION_ENGINE=

设置图像验证码 导入captche库并调用

短信验证接入 https://www.yuntongxun.com/user/reg/init wangyun123 注册并添加测试账号 融云短信sdk python文档 http://doc.yuntongxun.com/p/5f029ae7a80948a1006e776e

celelery 异步执行机制 生产者-消费者 模式 安装 pip install -U Celery 定义任务 装饰任务 加载任务 启动celery服务器 cd 工程目录 celery -A celery_tasks.main worker -l info

celer worker 工作模式 模式是进程池方式,进程数以当前机器的cpu核数为参考,每个cpu开四个进程 如何指定进程数:celery worker -A proj --concurrency=4 如何改变进程为协程方式:celery worker -A proj --concurrency=1000 -P eventlet -c 1000

安装 eventlet: pip install eventlet 启用 eventlet 池 celery -A celery_tasks.main worker -l info -P eventlet -c 1000 前端页面判断展示登录信息 方式一: {%if user.is_authenticated%} {%else%} {%endif%} 方式二: ajax请求局部刷新 方式三: 本地缓存:登录注册时候记住cookie response.set_cookie('username',username,max_age=36002415)

十一、第三方qq登录 使用第三方工具,QQLoginTool 安装:pip install QQLoginTool

模板数据用vue渲染 通过js定义变量接受数据

<script type="text/javascript"> let username = '{{ username }}'; let mobile = '{{ mobile }}'; let email = '{{ email }}'; let email_active = '{{ email_active }}'; </script>

在vue赋值渲染 var vm = new Vue({ el: '#app', delimiters:['[[',']]'],

data: {
    host,
    username: username,
    mobile: mobile,
    email: email,
    email_active: email_active,
    set_email: false,
    send_email_btn_disabled: false,
    send_email_tip: '重新发送验证邮件',
    email_error: false,
    histories: [],
},

自定义 LoginRequiredJSONMixin 返回json数据 重写 handle_no_permission 并响应结果返回json。 配置邮箱 在setting中添加相关邮箱信息 #发送邮箱相关配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #指定邮箱后端 EMAIL_USE_TLS = False # EMAIL_HOST = 'smtp.tuweizhong.com' #发邮件的主机 EMAIL_PORT = 25 #发邮件的端口 EMAIL_HOST_USER = 'mail@tuweizhong.com' #授权的邮箱 EMAIL_HOST_PASSWORD = 'xxxx' #授权邮箱密码 DEFAULT_FROM_EMAIL = 'mail@tuweizhong.com' send_mail()方法: django.core.mail 中提供send_mail() 方法参数:send_mail(subject,message,from_email,recipient_list,html_message=None)

django中的缓冲工具 from django.core.cache import cache 缓存数据:cache.set('key',neirong,youxiaoqi) 读取缓存:cache.get(key) 删除缓存:cache.delete(key) 注意:存入和读取数据类型相同,所以读取直接可以使用

本机绑定域名 编辑 /etc/hosts

数据库迁移方式 python manage.py makemigrations python manage.py migrate 出现:No changes detected 可能是未注册子应用,

空文件

简介

电商商城 展开 收起
Python 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/wywinstonwy/mall_project.git
git@gitee.com:wywinstonwy/mall_project.git
wywinstonwy
mall_project
mall_project
master

搜索帮助