美多商城python项目准备流程-1

pycharm解释器截图,python3环境一定要准确

1.首先在git 或者gitlab 或者gitee 创建自己的仓库

2.在本地创建文件夹然后git clone 下载gitee仓库内容,然后用pycharm打开项目,并在终端创建项目名称,配置解释器添加

3.django-admin startproject meiduo_test_story 执行前提 你需要安装django   需要进入虚拟环境创建

4.然后配置开发环境,项目分为开发环境(代码调试),生产环境(线上部署)

  注意:

                     

  1.新建python软件包为settings,作为配置文件目录. 注意:在pycharm打开项目后,需要第一时间修改忽略文件,在.gitignore中 空格添加 .idea 回车  

  2.准备开发文件和生产文件,开发文件为dev.py(把原有settings.py拷贝到这里),生产文件prod.py(把原有settings.py拷贝到这里)。并删除原有外围settings

  3.修改项目文件manage.py 把开发环境变量替换成现有变量如下

      原有变量没有dev,修改后增加dev,意思是增加开发环境变量    

        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo_test.settings')
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo_test.settings.dev')

5.配置jinja2模板引擎

  1.安装jinja2模板引擎,pycharm解释器中安装jinja2

  2.配置jinja2模板如下 ,模板引擎需要在一个TEMPLATES中,注意:配置这个模板要在dev.py中配置,而且原有要放在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模板引擎环境,需要在项目目录下创建utils软件包,并且新建jinja2_env.py,内容如下,

    配置完如下内容后,在dev.py templates jinja2模板中添加如下内容

    # 补充Jinja2模板引擎环境

    'environment': 'meiduo_mall.utils.jinja2_env.jinja2_environment',

    meiduo_mall 为变量需要根据项目名称具体修改

    from jinja2 import Environment

    from django.urls import reverse

    from django.contrib.staticfiles.storage import staticfiles_storage

    def jinja2_environment(**options):
    """jinja2环境"""
    # 创建环境对象
      env= Environment(**options)
    # 自定义语法 {{static('静态文件相对路径')}} {{url('路由的命名空间')}}
      env.globals.update({
      'static':'staticfiles_storage.url', #获取静态文件前缀
      'url':reverse, #反向解析
    })
    # 返回环境对象
      return env

6.配置mysql数据库

  1.新建并安装mysql数据(省略)

  2.创建项目数据库,create database meiduo_test charset=utf8;

  3.新建用户,目的是为了对应用户访问对应数据库。避免权限异常,crate user fjc identified by '123456';

  4.用户授权,grant all on meiduo_test.* to 'fjc'@'%';

  5.刷新,flush privileges;

  6.配置数据,以下内容添加到dev.py中,原有databases删除或者注释掉

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

    可能出现的错误
    Error loading MySQLdb module: No module named 'MySQLdb'.

    安装pymysql,pycharm 安装pymysql

  7.安装pymysql后,需要在项目名字的目录中__init__.py中添加如下代码,让mysql生效 

  from pymysql import install_as_MySQLdb

  install_as_MySQLdb()

 

7.配置redis缓存数据库

  1.需要再pycharm中安装django-redis

  2.在dev.py  mysql数据库配置下面 增加redis配置如下

    #配置redis数据库,需要安装django-redis包
    CACHES = {
      "default": { #默认
      "BACKEND": "django_redis.cache.RedisCache",
      "LOCATION": "redis://192.168.1.92:6379/0",
    "OPTIONS": {
      "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    # session
    "session": { #session
      "BACKEND": "django_redis.cache.RedisCache",
      "LOCATION": "redis://192.168.1.92:6379/1",
      "OPTIONS": {
      "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
      }
    }
    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    SESSION_CACHE_ALIAS = "session"

    

    default:

      默认的Redis配置项,采用0号Redis库。

    session:

      状态保持的Redis配置项,采用1号Redis库。

    SESSION_ENGINE

      修改session存储机制使用Redis保存。

    SESSION_CACHE_ALIAS:

      使用名为"session"的Redis配置项存储session数据

      配置完成后:运行程序,测试结果。

8.配置工程日志

  1.首先在第一级项目下创建log目录,然后创建文件.gitkeep,目的是保留logs文件夹,git提交时候忽略logs内的日志

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

 9.配置静态文件

  1.创建静态文件static目录,为什么是static目录,因为dev.py中已经写了叫static

  2.导入已经准备好的静态文件资源进行测试

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

posted @ 2023-12-13 18:12  疯狂的米粒儿  阅读(23)  评论(0编辑  收藏  举报