zoukankan      html  css  js  c++  java
  • 1 工程创建和配置

    创建工程

      

    1. 准备项目代码仓库

      创建源码远程仓库:meiduo_project

    2. 克隆项目代码仓库

      1.进入本地项目目录

    $ mkdir ~/projects
    $ cd projects/

      2.克隆仓库

    $ git clone https://gitee.com/sunbrightnan/meiduo_project.git
    

      

    3. 创建美多商城工程

      1.进入本地项目仓库

     cd ~/projects/meiduo_project/
    

      2.创建美多商城虚拟环境,安装Django框架

    $ mkvirtualenv -p python3 meiduo_mall
    $ pip install django==1.11.11
    

      3.创建美多商城Django工程

    django-admin startproject meiduo_mall
    

      

    配置开发环境

    美多商城项目的环境分为开发环境生产环境

    • 开发环境:用于编写和调试项目代码。
    • 生产环境:用于项目线上部署运行。

    1. 新建配置文件

    1. 准备配置文件目录
      • 新建包,命名为settings,作为配置文件目录
    2. 准备开发和生产环境配置文件
      • 在配置包settings中,新建开发和生产环境配置文件
    3. 准备开发环境配置内容
      • 将默认的配置文件settings.py中内容拷贝至dev.py

    配置Jinja2模板引擎

    1. 安装Jinja2扩展包

    $ pip install Jinja2
    

      

    2. 配置Jinja2模板引擎

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2',  # jinja2模板引擎
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
            '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',
                ],
            },
        },
    ]
    

      

    3. 补充Jinja2模板引擎环境

    1.创建Jinja2模板引擎环境配置文件

      

    jinjia2_env.py
    

      

    2.编写Jinja2模板引擎环境配置代码

    from jinja2 import Environment
    from django.contrib.staticfiles.storage import staticfiles_storage
    from django.urls import reverse
    
    
    def jinja2_environment(**options):
        env = Environment(**options)
        env.globals.update({
            'static': staticfiles_storage.url,
            'url': reverse,
        })
        return env
    
    
    """
    确保可以使用模板引擎中的{{ url('') }} {{ static('') }}这类语句 
    """
    

      

    3.加载Jinja2模板引擎环境

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2',  # jinja2模板引擎
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
            '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模板引擎环境
                'environment': 'meiduo_mall.utils.jinja2_env.jinja2_environment', 
            },
        },
    ]
    

      

    2配置MySQL数据库

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', # 数据库引擎
            'HOST': '127.0.0.1', # 数据库主机
            'PORT': 3306, # 数据库端口
            'USER': 'root', # 数据库用户名
            'PASSWORD': '123456', # 数据库用户密码
            'NAME': 'meiduo' # 数据库名字
        },
    }
    

      

    配置Redis数据库

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

      

    配置工程日志

    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': {  # 日志器
            'django': {  # 定义了一个名为django的日志器
                'handlers': ['console', 'file'],  # 可以同时向终端与文件中输出日志
                'propagate': True,  # 是否继续传递日志信息
                'level': 'INFO',  # 日志器接收的最低日志级别
            },
        }
    }
    

      

    配置前端静态文件

    STATIC_URL = '/static/'
    
    # 配置静态文件加载路径
    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
    

      

  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/csp813/p/14552019.html
Copyright © 2011-2022 走看看