商城(项目准备)
商城(項目準備)
1.項目準備
需求分析
-
用戶部分
注冊:圖片驗證碼,短信驗證碼
登陸:第三方登陸(qq登陸)
個人信息:郵箱填寫與驗證,瀏覽歷史記錄
地址管理:省市地址信息加載,新增修改刪除地址,設置默認地址
修改密碼 -
商品部分
首頁:商品分類,廣告控制
商品列表
商品詳情
商品搜索 -
購物車管理
-
訂單部分
提交訂單
我的訂單
訂單評價 -
支付部分
支付寶支付
2.項目架構
- 項目采用前后端分離的應用模式
- 前端使用Vue.js
- 后端使用Django REST framework
3.創(chuàng)建工程
在git平臺創(chuàng)建工程
在碼云上創(chuàng)建新項目,創(chuàng)建基本的項目名稱
克隆路徑,用ssh來克隆,先在終端生成ssh 秘鑰,生成ssh方法如下:
cd .ssh
rm -rf id_rsa id_rsa.pub(刪除原來id_rsa id_rsa.pub)
cd
ssh-keygen -t rsh(執(zhí)行命令)
cd .ssh
復制公鑰(cat id_rsa、)
復制私鑰(cat id_rsa.pub)
將秘鑰復制的碼云,我的ssh里面
git clone ssh路徑
git checkout -b dev(創(chuàng)建并切換分支到dev)
添加前端文件
將前端文件復制到meiduo子目錄中
在執(zhí)行如下命令:
git add front_end_pc
git add front_end_pc 的時候會報錯誤CRLF will be replaced by LF in front_end_pc/place_order.html
LF 是換行符 (Linux :\n windows:\r mac :\r\n)
CR 是\r LF是\n
git status
git commit -m ‘add front_end_pc’
git push origin dev:dev
在碼云中發(fā)起合并(一般都是最后才做的)
在創(chuàng)建的文件中點擊Pull Request
然后選擇分支dev,點擊創(chuàng)建
進入合并頁面,選擇合并分支
接收合并請求
后端虛擬環(huán)境創(chuàng)建
mkvirtualenv meiduo_mall -p python3
pip install django==1.11.11
pip install djangorestframework
pip install pymysql
前端文件開發(fā)預覽
安裝node.js版本控制工具nvm
安裝node 相當于在python中安裝一個解釋器
live-server 可以定時刷新,不會使用緩存
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
退出重新進入終端,安裝nvm
nvm install node
安裝live-server
npm install -g live-server
這個訪問靜態(tài)文件的時候,需要cd front_end_pc 路徑下,執(zhí)行
live-server 命令
創(chuàng)建數據庫
現在root數據庫中,創(chuàng)建meiduo29數據庫
create database meiduo29 default charset=utf8;
再創(chuàng)建一個數據庫用戶,專門存放meiduo29的庫
create user meiduo identified by ‘meiduo’;
grant all on meiduo_mall.* to ‘meiduo’@’%’;
flush privileges;
說明:
第一句:創(chuàng)建用戶賬號 meiduo, 密碼 meiduo (由identified by 指明)
第二句:授權meiduo_mall數據庫下的所有表(meiduo_mall.*)的所有權限(all)給用戶meiduo在以任何ip訪問數據庫的時候(‘meiduo’@’%’)
第三句:刷新生效用戶權限
4.配置
修改settings/dev.py 文件中的路徑信息
在工程目錄/meiduo_mall/apps,創(chuàng)建子應用users
使用sys.path添加<BASE_DIR>/apps目錄,即可添加apps應用的導包路徑
添加導包路徑
數據庫
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','HOST': '127.0.0.1', # 數據庫主機'PORT': 3306, # 數據庫端口'USER': 'meiduo', # 數據庫用戶名'PASSWORD': 'meiduo', # 數據庫用戶密碼'NAME': 'meiduo_mall' # 數據庫名字}}注意:
記得在meiduo/meiduo_mall/init.py文件中添加
import pymysql pymysql.install_as_MySQLdb()安裝django-redis,
django_redis
為了避免儲存新的原生連接所產生的另一份設置Django-redis提供方法get_reids_connection(alians)使你獲得可重用的連接字符串
from django_redis import get_redis_connection
con = get_redis_connection(‘default’)
django_redis 依賴于redis,django_redis 已經幫我們創(chuàng)建好了連接對象,get_redis_connection是Django_redis里面的連接對象
并配置
CACHES = {"default": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://10.211.55.5:6379/0","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",}},"session": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://10.211.55.5:6379/1","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",}}}SESSION_ENGINE = "django.contrib.sessions.backends.cache"SESSION_CACHE_ALIAS = "session"本地化語言與時區(qū)
LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'日志
formatters
verbose
levelname(等級)
asctime(時間)
(module)s%(lineno)d%(message)s 模塊里面第幾行信息
異常處理
context 字典 可以指出哪個視圖函數
配置文件中添加
REST_FRAMEWORK = {# 異常處理'EXCEPTION_HANDLER': 'meiduo_mall.utils.exceptions.exception_handler', }總結
- 上一篇: Rush Leetcode
- 下一篇: FaWave恢复twitter的办法