2022-10-23

步骤:

一、创建工程仓库

(1)在“码云”上创建一个仓库,在本地盘符中创建一个文件夹,右击,使用git,将远程仓库的内容克隆到本地仓库中,点击“Git Bash Here”。将刚刚创建的远程仓库克隆,使用的命令是“git clone 刚刚远程仓库的地址(点击(克隆/下载)按钮会出现一个网址)”。之后,系统会弹出弹框,要求输入Gitee中的用户名(头像下面@之后的用户名,不是我们设置的姓名)和密码。

(2)使用pycharm打开刚刚克隆下来的仓库。在忽略文件(gitignore)中,随意找一行,添加上“.idea”,忽略掉该文件。

(3)之后,将修改的内容推送至远程仓库。使用快捷键“Ctrl + K”,选中要推送修改的部分,并填写提交描述,右击“提交并推送”。之后会弹出一个凭证,输入Gitee中的用户名与密码。之后推送完后。查看是否推送成功:在本地:点击pycharm下面“git”按钮,可以查看。在Gitee中,刷新页面就可。

二、创建美多商城工程

(1)创建一个虚拟环境,安装Django框架

创建虚拟环境

mkvirtualenv -p python3 meiduo_mall

安装Django框架

pip install django

(2)设置子应用

django-admin startproject meiduo_mall

——————————–

2022-10-24

使用pycharm打开文件所在的位置,,首先在pycharm中的终端中运行该Django项目,查看是否OK(python manage.py runserver)

为了直接在“manage.py”文件中直接使用运行按钮直接执行,需要点击工具栏中的“manage”,修改配置,将第二空中的参数设置为“runserver 8000”,之后在“manage.py”中进行执行运行。

之后将项目提交至远程仓库。

————————-

三、配置开发环境

(1)在“meiduo_mall”中右击添加一个软件包,命名为“settings”,在后面弹出的询问框,问是否推送至远程仓库中,点击“是”。

(2)设置配置文件,在“settings”中,创建一个“.py”文件,命名为“dev.py”,将“setting.py”中的文件复制到“dev.py”文件中,并且将“setting.py”文件删除。

(3)在“manage.py”文件中,“

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings")

”行中改为

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.dev")

,之后在进行运行。

(4)新建“生产环境的配置环境”,在“settings”中创建一个“.py”文件,命名为“prod.py”。在“wsgi.py”文件中修改生产环境的配置文件。为

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.prod")

——————-

四、配置jinja2模板引擎

(1)在“dev.py”文件中,找到“TEMPLATES”,将其中对应的代码改为

'BACKEND': 'django.template.backends.jinja2.Jinja2',

(2)配置模板文件的加载路径

'DIRS': [os.path.join(BASE_DIR,'templates')],

(3)在“meiduo_mall”文件夹下面创建一个“python package”文件,命名为“utils”。在该文件夹下创建一个“.py”文件,命名为“jinja2_env”。“jinja2_env.py”文件中的代码:

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

(4)在“settings”中的“dev.py”中的“TEMPLATES”中补充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',        },    },]

五、配置mysql数据库

(1)打开虚拟机中的ubantu,打开终端,依次输入下面的命令

mysql -uroot -pshow databases;create database meiduo charset=utf8;show databases;# 为数据库创建一个用户create user '用户名'@'%' identified by '密码';grand all on meiduo.* to '用户名'@'%';# 刷新权限flush privileges;

(2)在“settings”中的“dev.py”中的“DATABASES”添加信息:

 1 DATABASES = { 2     'default': { 3         'ENGINE': 'django.db.backends.mysql', # 数据库引擎 4         'HOST': 'xxx.xxx.xxx.xxx', # 数据库主机 5         'PORT': 3306, # 数据库端口 6         'USER': xxx, # 数据库用户名 7         'PASSWORD':'xxx', # 数据库用户密码 8         'NAME': 'meiduo', # 数据库名字 9     }10 }

  说明:在第4行中写出“数据库主机”的ip地址,将设置的用户名和密码填写到对用的位置上。

(3)安装pymysql

使用的命令“pip install PyMySQL”;之后需要在”meiduo_mall”文件夹中的“init.py”中填入下面的代码,因为刚刚将“数据库的引擎的后缀”修改为“mysql”。

from pymysql import install_as_MySQLdbinstall_as_MySQLdb()

六、配置redis数据库

(1)安装django-redis扩展包,在pycharm中的终端中使用的命令是:

pip install django-redis

(2)配置redis数据库,查看的中文配置文档如下:

https://django-redis-chs.readthedocs.io/zh_CN/latest/

(3)在“settings”中的“dev.py”中仍找一行添加Redis信息:

CACHES = {    "default": {        "BACKEND": "django_redis.cache.RedisCache",        "LOCATION": "redis://127.0.0.1:6379/1",        "OPTIONS": {            "CLIENT_CLASS": "django_redis.client.DefaultClient",        }    }}

(4)配置分库

 1 # 配置Redis数据库 2 CACHES = { 3     "default": { # 默认 4         "BACKEND": "django_redis.cache.RedisCache", 5         "LOCATION": "redis://xxx.xxx.xxx.xxx:6379/0", 6         "OPTIONS": { 7             "CLIENT_CLASS": "django_redis.client.DefaultClient", 8         } 9     },10     "session": { # session11         "BACKEND": "django_redis.cache.RedisCache",12         "LOCATION": "redis://xxx.xxx.xxx.xxx:6379/1",13         "OPTIONS": {14             "CLIENT_CLASS": "django_redis.client.DefaultClient",15         }16     },17 }18 SESSION_ENGINE = "django.contrib.sessions.backends.cache"19 SESSION_CACHE_ALIAS = "session"

    说明:在第5行和第12行代码中,“xxx.xxx.xxx.xxx”:表示的是在“DATABASES”中配置的数据库主机的ip地址。

七、配置日志信息

(1)在“settings”中的“dev.py”中任意找一行,添加如下代码:

# 配置工程日志LOGGING = {    'version': 1,    'disable_exisiting_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'        },    },    'filter':{ # 对日志进行过滤        'require_debug_true':{ # django在debug模式下才输出日志            '()':'django.utils.log.RequireDebugTrue',        },    },    'handlers':{ # 日志处理方法        'console':{ # 向终端中输入日志            'level':'INFO',            'filter':['require_debug_true'],            'class':'logging.StreamHandler',            'formatter':'simple'        },        'file':{ # 向文件中输出日志            'level':'INFO',            'class':'logging.handlers.RotatingFileHander',            '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',# 日志器接收的最低日志级别        },    }}