91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python框架Django實戰商城項目之工程搭建過程圖文詳解

發布時間:2020-09-03 01:46:12 來源:腳本之家 閱讀:290 作者:zyjImmortal 的個人博客 欄目:開發技術

項目說明

該電商項目類似于京東商城,主要模塊有驗證、用戶、第三方登錄、首頁廣告、商品、購物車、訂單、支付以及后臺管理系統。項目開發模式采用前后端不分離的模式,為了提高搜索引擎排名,頁面整體刷新采用jinja2模板引擎實現,局部刷新采用vue.js實現。

項目運行機制如下:

python框架Django實戰商城項目之工程搭建過程圖文詳解

項目搭建

工程創建

項目使用碼云進行源代碼版本控制,在碼云創建好后直接克隆到本地即可,然后在項目根目錄下執行virtualenv venv創建虛擬環境,source venv/bin/activat激活虛擬環境后,安裝django后,執行 django-admin startproject immortal_mall創建django工程。

配置開發環境

商城項目有兩個環境,分別為測試環境和開發環境,django項目在創建完成后只有一個settings配置文件,但是兩個環境需要兩個配置文件,這里需要修改django獲取配置文件的方式。新建settings包,再新建dev和pro兩個配置文件,將默認生成的settings文件里面的內容拷貝至dev和pro文件里,結果如下

python框架Django實戰商城項目之工程搭建過程圖文詳解

再在mange.py文件里指定開發環境需要的配置文件,生成環境的后面再說

python框架Django實戰商城項目之工程搭建過程圖文詳解

配置jiaja2模板引擎

安裝jinja2擴展包pip install jinja2,然后在dev文件中配置一下

python框架Django實戰商城項目之工程搭建過程圖文詳解

這里有個注意的點,如果在運行的時候報錯了,提示

python框架Django實戰商城項目之工程搭建過程圖文詳解

這時是因為注釋掉了django默認的模板配置,需要去掉注釋,只添加新的版本引起即可。

配置mysql數據庫

新建數據庫

新建數據庫

create database meiduo charset=utf8;

新建mysql用戶

create user mall identified by '123456';

授權用戶只能訪問immortal_mall數據庫

grant all on immortal_mall.* to 'mall'@'%';

刷新授權

flush privileges;

配置數據庫

DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.mysql',
 'NAME': 'immortal_mall',
 'HOST': '127.0.0.1',
 'USER': 'zhouyajun',
 'PASSWORD': '12345678',
 'PORT': '3306'
 }
}

django默認使用的是mysqlclient工具,需要單獨安裝,這里用pymysql代替,在工程同名子目錄的__init__.py文件中,寫入下面代碼

import pymysql
pymysql.install_as_MySQLdb()

在啟動項目對的時候可能會報錯,提示mysql

File "/Users/lixiang/.env/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 36, in <module> raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__) django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

具體解決方式可以參考這里https://zhuanlan.zhihu.com/p/76920424

配置redis

商城采用redis作為緩存服務

pip install django-redis

這里是django-redis的使用文檔https://django-redis-chs.readthedocs.io/zh_CN/latest/,在dev文件中配置redis

緩存配置

CACHES = {
 "default": {
 "BACKEND": "django_redis.cache.RedisCache",
 "LOCATION": "redis://127.0.0.1:6379/2",
 "OPTIONS": {
 "CLIENT_CLASS": "django_redis.client.DefaultClient",
 }
 },
 "session": {
 "BACKEND": "django_redis.cache.RedisCache",
 "LOCATION": "redis://127.0.0.1:6379/3",
 "OPTIONS": {
 "CLIENT_CLASS": "django_redis.client.DefaultClient",
 }
 }
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

default是redis采用的默認配置,用的是2號數據庫,session是redis保持保持狀態的配置項,用的是3號數據庫,

日志配置

# 日志配置
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在debug模式下才輸出日志
 '()': 'django.utils.log.RequireDebugTrue',
 },
 },
 'handlers': { # 日志處理方法
 'console': { # 向終端中輸出日志
 'level': 'INFO',
 '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/mall.log'), # 日志文件的位置
 'maxBytes': 300 * 1024 * 1024,
 'backupCount': 10,
 'formatter': 'verbose'
 },
 },
 'loggers': { # 日志器
 'django': { # 定義了一個名為django的日志器
 'handlers': ['console', 'file'], # 可以同時向終端與文件中輸出日志
 'propagate': True, # 是否繼續傳遞日志信息
 'level': 'INFO', # 日志器接收的最低日志級別
 },
 }
}

這里需要在項目的根目錄下手動創建logs文件,寫日志的時候呢,我們希望能夠自動分日期去寫,每天的日志寫到不同的文件里,這里可以使用python模塊自帶的TimedRotatingFileHandler,也可以自定義一個handler類去實現。我這里呢自己實現了一個類叫做MallRotatingFileHandler 效果如下:

python框架Django實戰商城項目之工程搭建過程圖文詳解

該類實現按月劃分日志文件,自動按照當天日期命名日志文件,也可以定義文件容量。

配置前端靜態文件準備靜態文件夾static

python框架Django實戰商城項目之工程搭建過程圖文詳解

指定靜態文件加載路徑

# 指定加載靜態恩建路由前綴
STATIC_URL = '/static/'
# 配置靜態文件加載路徑
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

運行項目,請求獲取一張圖片http://127.0.0.1:8989/static/images/adv01.jpg,成功獲取表示配置正確。

最終項目各個目錄展示成果:

python框架Django實戰商城項目之工程搭建過程圖文詳解

總結

到此這篇關于python框架Django實戰商城項目之工程搭建過程的文章就介紹到這了,更多相關python框架Django工程搭建內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滨海县| 凤庆县| 屏边| 奎屯市| 大连市| 彰武县| 磐石市| 朝阳市| 兰西县| 哈巴河县| 临夏市| 靖江市| 大同市| 平顶山市| 磐安县| 秦安县| 余干县| 克什克腾旗| 金堂县| 丹东市| 宝兴县| 灵石县| 石首市| 拉孜县| 霍林郭勒市| 新乐市| 灌云县| 云安县| 定州市| 中卫市| 临武县| 楚雄市| 平凉市| 益阳市| 进贤县| 大英县| 夏邑县| 山东| 岢岚县| 宁国市| 工布江达县|