单爆手

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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
posted on 2019-12-25 01:02  单爆手  阅读(311)  评论(0)    收藏  举报