1. 項目開發基礎概念
1.1 企業的web項目類型
-
商城
1.1 B2C 直銷商城 商家與會員直接交易 ( Business To Customer )
1.2 B2B 批發商城 商家與商家直接交易
1.3 B2B2C 購物平臺 商家和會員在另一個商家提供的平臺上面進行交易
1.4 C2B 定制商城 會員向商家發起定制商品的需求,商家去完成。
1.5 O2O 線上線下交易平臺
1.6 C2C 二手交易平臺
-
門戶網站[企業站和門戶站]
-
社交網絡
-
資訊論壇
-
內部系統
-
-
內容收費站
3. 環境搭建
3.1 創建虛擬環境
mkvirtualenv luffy or mkvirtualenv luffy -p python3 # 指定python版本
# 其他相關命令 創建虛擬環境: mkvirtualenv 虛擬環境名稱 創建虛擬環境(指定python版本): mkvirtualenv -p python3 虛擬環境名稱 查看所有虛擬環境: workon+2次tab鍵 使用虛擬環境: workon 虛擬環境名稱 退出虛擬環境: deactivate 刪除虛擬環境(必須先退出虛擬環境內部才能刪除當前虛擬環境): rmvirtualenv 虛擬環境名稱 其他相關命令: 查看虛擬環境中安裝的包: pip freeze 或者 pip list 收集當前環境中安裝的包及其版本: pip freeze > requirements.txt 在部署項目的服務器中安裝項目使用的模塊: pip install -r requirements.txt
3.3 依賴包安裝
pip install django
pip install djangorestframework
pip install PymySQL
pip install Pillow
pip install django-redis
4. 搭建項目
django-admin startproject luffy
4.3 打開項目
在pycharm中打開項目
settings里面添加虛擬環境,啟動django,設置runserver
├── docs/ # 項目相關資料保存目錄 ├── logs/ # 項目運行時/開發時日志目錄 ├── manage.py ├── luffy/ # 項目主應用,開發時的代碼保存 │ ├── apps/ # 開發者的代碼保存目錄,以模塊[子應用]為目錄保存 │ ├── libs/ # 第三方類庫的保存目錄[第三方組件、模塊] │ ├── settings/ │ ├── dev.py # 項目開發時的本地配置 │ ├── prop.py # 項目上線時的運行配置 │ ├── urls.py # 總路由 │ ├── utils/ # 多個模塊[子應用]的公共函數類庫[自己開發的組件] └── scripts/ # 保存項目運營時的腳本文件
cd 目錄路徑
git init
git config --global user.name "拾玥" git config --global user.email "724979830@qq.com"
2)克隆項目到本地
git clone https://gitee.com/shiony/luffy.git
# 注意,如果當前目錄下出現git倉庫同名目錄時,會克隆失敗。
注意:
我們當前項目不需要這個步驟
這個步驟是 當以后我們進入公司里面,參與人家已經在做的項目時,別人已經有倉庫了,但是我們是新人加入項目中的,那么我們不需要在自己本地進行git init,直接git clone 復制別人的倉庫代碼
git提交
git add 代碼目錄 # 添加代碼到上傳隊列 git status # 查看當前項目的版本狀態 git commit -m '添加項目代碼' # 提交代碼到本地倉庫, -m 表示本次提交的描述
推送到遠端
git push origin dev:dev
如果推送代碼,出現以下提示: git pull ....,則表示當前本地的代碼和線上的代碼版本不同.
1. 把線上的代碼執行以下命令,拉取到本地,進行同步 git pull 2. 根據提示,移除多余的沖突的文件,也可以刪除. 完成這些步驟以后,再次add,commit,push即可.
接下來,我們就把上面創建好的本地項目提交到gitee碼云上面
# .表示當前目錄下所有的文件或目錄提交到上傳隊列[上傳隊列也叫"暫存區"] git add . # 把本地上傳隊列的代碼提交到本地倉庫 git commit -m "項目初始化搭建" # 給本地的git版本控制軟件設置項目的遠程倉庫地址 git remote add origin https://gitee.com/mooluo/luffyproject.git # 提交代碼給遠程倉庫 git push -u origin master
# 輸入賬號,密碼
擴展: 1. 通過 git status 可以查看當前項目的代碼版本狀態 2. 通過 git reflog 可以查看代碼版本日志[簡單格式] 3. 通過 git log 可以查看代碼版本日志[詳細格式]
所以,我們針對一些不需要的文件,可以選擇從代碼版本中刪除,并且使用.gitignore把這些垃圾文件過濾掉。
git rm 文件 # 刪除單個文件 git rm -rf 目錄 # 遞歸刪除目錄 # 以下操作建議通過ubuntu的終端來完成,不要使用pycharm提供,否則刪除.idea還會繼續生成。 git rm -rf .idea git rm db.sqlite3 # 注意,上面的操作只是從項目的源代碼中刪除,但是git是不知情的,所以我們需要同步。 git add . git commit -m "刪除不必要的文件或目錄" git push -u origin master
vim .gitignore ./idea ./idea/* ./git ./db.sqlite3
4.6 日志配置
在settings/dev.py文件中追加如下配置
# 日志配置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' }, 'simple': { 'format': '%(levelname)s %(module)s %(lineno)d %(message)s' }, }, 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', 'formatter': 'simple' }, 'file': { 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', # 日志位置,日志文件名,日志保存目錄必須手動創建 'filename': os.path.join(os.path.dirname(BASE_DIR), "logs/luffy.log"), # 日志文件的最大值,這里我們設置300M 'maxBytes': 300 * 1024 * 1024, # 日志文件的數量,設置最大日志數量為10 'backupCount': 10, # 日志格式:詳細格式 'formatter': 'verbose' }, }, # 日志對象 'loggers': { 'luffy': { 'handlers': ['console', 'file'], 'propagate': True, # 是否讓日志信息繼續冒泡給其他的日志處理系統 }, } }
新建utils/exceptions.py
from rest_framework.views import exception_handler from django.db import DatabaseError from rest_framework.response import Response from rest_framework import status import logging logger = logging.getLogger('luffy') def custom_exception_handler(exc, context): """ 自定義異常處理 :param exc: 異常類 :param context: 拋出異常的上下文 :return: Response響應對象 """ # 調用drf框架原生的異常處理方法 response = exception_handler(exc, context) if response is None: view = context['view'] if isinstance(exc, DatabaseError): # 數據庫異常 logger.error('[%s] %s' % (view, exc)) response = Response({'message': '服務器內部錯誤'}, status=status.HTTP_507_INSUFFICIENT_STORAGE) return response
settings.py配置文件中添加
REST_FRAMEWORK = { # 異常處理 'EXCEPTION_HANDLER': 'luffy.utils.exceptions.custom_exception_handler', }
create database luffycity default charset=utf8;
為當前項目創建數據庫用戶[這個用戶只能看到這個數據庫
create user luffy_user identified by 'luffy'; grant all privileges on luffycity.* to 'luffy_user'@'%'; flush privileges;
4.8 配置數據庫連接
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "HOST": "127.0.0.1", "PORT": 3306, "USER": "luffy_user", "PASSWORD": "luffy", "NAME": "luffycity", } }
import pymysql pymysql.install_as_MySQLdb()

浙公網安備 33010602011771號