2022-10-23 步驟: 一、創建工程倉庫 (1)在“碼雲”上創建一個倉庫,在本地盤符中創建一個文件夾,右擊,使用git,將遠程倉庫的內容克隆到本地倉庫中,點擊“Git Bash Here”。將剛剛創建的遠程倉庫克隆,使用的命令是“git clone 剛剛遠程倉庫的地址(點擊(克隆/下載)按鈕會 ...
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 Environment from django.contrib.staticfiles.storage import staticfiles_storage from django.urls import reverse def 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 -p show 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_MySQLdb install_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": { # session 11 "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',# 日誌器接收的最低日誌級別 }, } }