日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建

發(fā)布時間:2023/12/2 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

項目說明

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

項目運行機制如下:

項目搭建

工程創(chuàng)建

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

配置開發(fā)環(huán)境

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

再在mange.py文件里指定開發(fā)環(huán)境需要的配置文件,生成環(huán)境的后面再說

配置jiaja2模板引擎

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

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

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

配置mysql數(shù)據(jù)庫

新建數(shù)據(jù)庫

  • 新建數(shù)據(jù)庫 create database meiduo charset=utf8;
  • 新建mysql用戶 create user mall identified by '123456';
  • 授權(quán)用戶只能訪問immortal_mall數(shù)據(jù)庫 grant all on immortal_mall.* to 'mall'@'%';
  • 刷新授權(quán) flush privileges;

    配置數(shù)據(jù)庫

    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()在啟動項目對的時候可能會報錯,提示mysqlFile "/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作為緩存服務(wù) 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號數(shù)據(jù)庫,session是redis保持保持狀態(tài)的配置項,用的是3號數(shù)據(jù)庫,

    日志配置

    # 日志配置 LOGGING = {'version': 1,'disable_existing_loggers': False, # 是否禁用已經(jīng)存在的日志器'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, # 是否繼續(xù)傳遞日志信息'level': 'INFO', # 日志器接收的最低日志級別},} }

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

    該類實現(xiàn)按月劃分日志文件,自動按照當(dāng)天日期命名日志文件,也可以定義文件容量。

    配置前端靜態(tài)文件

    準(zhǔn)備靜態(tài)文件夾static

    指定靜態(tài)文件加載路徑

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

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

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

    歡迎大家去 我的博客 瞅瞅,里面有更多關(guān)于測試實戰(zhàn)的內(nèi)容哦!!

    總結(jié)

    以上是生活随笔為你收集整理的django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。