學習筆記——美多商城——1 美多商城項目準備

来源:https://www.cnblogs.com/isDaHua/archive/2022/10/31/16819473.html
-Advertisement-
Play Games

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',# 日誌器接收的最低日誌級別

        },
    }
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 摘要:在Java中提供了synchronized關鍵字來保證只有一個線程能夠訪問同步代碼塊。既然已經提供了synchronized關鍵字,那為何在Java的SDK包中,還會提供Lock介面呢?這是不是重覆造輪子,多此一舉呢? 本文分享自華為雲社區《【高併發】Java中提供了synchronized, ...
  • 在之前的SqlSugar系列隨筆中,介紹了很多我們關於SqlSugar的開發框架的內容,SqlSugar的開發框架的目的是多前端應用場景,因此其中會包含各種不同的前端應用,前面介紹了基於DevExpress的Winform的前端應用,以及基於Vue3+TypeScript+ElementPlus的B... ...
  • apijson 初探 本文試著用 5W1H 方式切入,試圖快速建立自己對 apijson 的整體認知,所以這不是一趟快速入門的 demo 之旅,而是顯得比較務虛的探索式知識體系整合過程。 持續更新中... 1、Why 前後端開發過程中各種痛點: 開發流程繁瑣、周期長 前端/客戶端與後端各種扯皮 文檔 ...
  • 您好,我是湘王,這是我的博客園,歡迎您來,歡迎您再來~ 前面把線程相關的生命周期、關鍵字、線程池(ThreadPool)、ThreadLocal、CAS、鎖和AQS都講完了,現在就剩下怎麼來用多線程了。而要想用好多線程,其實是可以取一些巧的,比如JUC(好多面試官喜歡問的JUC,就是現在要講的JUC ...
  • 1.函數定義 函數就是將完成一件事情的步驟封裝在一起並得到最終的結果; 函數名代表了這個函數要做的事情; 函數體是實現函數功能的流程; 添加一個函數也被叫做實現了一個方法或功能; 函數可以幫助我們重覆使用一些操作步驟; 2.def 通過關鍵字def定義函數; def name(args...): p ...
  • 1.簡介 python的創始人為 吉多·範羅蘇姆(Guido van Rossum),創建於1989年的聖誕節期間,根據本人熱愛的電視劇《蒙提·派森的飛行馬戲團》(Monty Python's Flying Circus)而取得。 目前python在眾多領域中得到了極大的推廣,一躍成為全球最火爆的語 ...
  • JavaScript02 8.JavaScript函數 JavaScript函數介紹 函數是由事件驅動的,或者當它被調用時,執行的可重覆使用的代碼 例子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>函數快 ...
  • phpt測試文件說明 phpt文件用於PHP的自動化測試,這是PHP用自己來測試自己的測試數據用例文件。 測試腳本通過執行PHP源碼根目錄下的run-tests.php,讀取phpt文件執行測試。 phpt文件包含 TEST,FILE,EXPECT 等多個段落的文件。在各個段落中,TEST、FILE ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...