1.修改配置文件:
。新建settings包(meiduo_mall项目同名的meiduo_mall包下)--目的:便于将来不同阶段的开发,测试,上线同时存在三套配置文件
。拷贝原来的settings.py到此包,改名为dev.py
。修改manage.py文件--指定配置文件,配置环境变量meiduo_mall.settings 改为meiduo_mall.settings.dev---因为现在已经没settins模块了是dev
2.配置Jinja2:
(1)配置Jinja2模版引擎
。安装Jinja2用豆瓣源:pip install Jinja2==2.10
。新建模版文件目录meiduo_mall/templates/
。告诉pycharm去哪找模版文件:右键单击templates-->>mark directory as--->>Template Folder点击即可
。配置Jinja2模版引擎:dev.py中:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2',#----把模版引擎驱动换成Jinja2 'DIRS': [os.path.join(BASE_DIR, 'templates')],#--模版文件存放路径:meiduo_mall包/应用下templates目录中-->>告诉jinja2去哪找模版文件 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], # 补充Jinja2模板引擎环境---这句话作用是让jinja2_env.py中的配置生效--补充环境变量environment 'environment': 'meiduo_mall.utils.jinja2_env.jinja2_environment',#---让jinja2的配置生效--即将来html中就可用static和url两变量了 }, }, ]
。补充:__file__===>当前文件名dev.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

(2).meiduo_mall包下新建一个包utils工具包(将来专放重复的代码)--自己封装的通用代码,再在其中建jinja2_env.py辅助jinja2工具文件--设置jinja2的一些变量--这样将来在html中{% %}中可使用jinja2变量---这里我只加了static和url两个:
from django.contrib.staticfiles.storage import staticfiles_storage from django.urls import reverse from jinja2 import Environment def jinja2_environment(**options):#此函数是设置jinja2的变量 env = Environment(**options) env.globals.update({ 'static': staticfiles_storage.url, 'url': reverse, }) return env """ 作用是确保可以使用Django模板引擎中的{% url('') %} {% static('') %}这类的语句 """
3.配置数据库:mysql
去连接数据库:

(1)新建数据库:ubuntu终端
create database meiduo_tbd39 charset=utf8;
(2)新建项目的tbd39用户:
create user tbd39 identified by '123456'; grant all on meiduo_tbd39.* to tbd39@'%'; flush privileges;

(3)配置数据库dev.py中:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'HOST': '127.0.0.1', # 数据库主机 'PORT': 3306, # 数据库端口 'USER': 'tbd39', # 数据库用户名 'PASSWORD': '123456', # 数据库用户密码 'NAME': 'meiduo_tbd39' # 数据库名字 }, }
pycharm中加数据库连接:

(4)安装pymysql扩展包:

在meiduo_mall包的__init__.py中引入:
from pymysql import install_as_MySQLdb install_as_MySQLdb()
4.配置redis:
(1)安装django-redis

(2)配置缓存和指定session的保存方案
dev.py中:
# 缓存有两个方案默认的default和我自定的session如下 CACHES = { "default": { # 默认 "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0", # 可改:ip、port、db "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } }, "session": { # session也让它存到redis中 "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1",#redis的连接ip,port和db1 "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } }, } # 指定session的保存方案---用上述中的session缓存方案 SESSION_ENGINE = "django.contrib.sessions.backends.cache"#用缓存来存session SESSION_CACHE_ALIAS = "session"#用缓存中配置的session方案来存
5.配置工程日志:并在meiduo_mall项目下建logs目录,并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在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/meiduo.log'), # 日志文件的位置 'maxBytes': 300 * 1024 * 1024, 'backupCount': 10, 'formatter': 'verbose' }, }, 'loggers': { # 日志器---将来怎么用直接import loggings模块,并logger=logging.getlogger('django')就可调用如下的自定的django日志器了
再logger.info就可调用info级别了
'django': { # 定义了一个名为django的日志器 'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志 'propagate': True, # 是否继续传递日志信息 'level': 'INFO', # 日志器接收的最低日志级别 }, } }
(2)ubuntu中编辑.gitignore文件:--因为开发阶段每个人会运行出很多日志,所以不记录开发阶段日志.log文件--不需要加到版本控制器中

追加*.log
(3)我想保持目录中文件的存在:建logs/.gitkeep文件--它的作用是如果logs目录下的所有文件都被我忽略了,这个logs目录不会被git管理起,所以建一不叫log的文件
6.配置静态文件:
(1)把前端人员给的static目录拷贝到meiduo_mall包下:并改js版本settings--->>Languagesge&Frameworks--->>javascript-->ECMAscript 6
.(2)告诉django去哪找静态文件dev.py中:
# 静态文件访问的url路径 STATIC_URL = '/static/' # 静态文件的磁盘路径 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
7.meiduo_mall包下建libs包-----专放引用的第三方的代码
8.meiduo_mall包中再建一个包apps--将来我的子应用都来这里建
git add ./
crtl+k提交
crtl+shift+k
效果如下:

最后目录结构如下:

environment
浙公网安备 33010602011771号