最新案例動態,請查閲 《【案例共創】基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統》。小夥伴快來領取華為開發者空間進行實操吧!

本案例由開發者:xiaowuyun提供

一、概述

1. 案例介紹

Django是一個高級的Python Web開源應用框架,可以快速開發安全和可維護的網站。Django負責處理網站開發中麻煩的部分,可以專注於編寫應用程序,而無需重新開發。

Pillow 是Python中較為基礎的圖像處理庫,主要用於圖像的基本處理,比如裁剪圖像、調整圖像大小和圖像顏色處理等。

Markdown模塊允許你將Markdown文本轉換為HTML。Markdown是一種輕量級標記語言,它允許你使用易讀易寫的純文本格式編寫文檔,然後轉換成有效的HTML。

本案例藉助開發者空間雲開發環境Python中部署Django,Pillow,Markdown,並與開發者空間提供的免費GaussDB數據庫實例對接,完成一個博客系統的構建。

華為開發者空間是為全球開發者打造的專屬開發者空間,致力於為每位開發者提供一台雲主機、一套開發工具和雲上存儲空間,匯聚昇騰、鴻蒙、鯤鵬、GaussDB、歐拉等華為各項根技術的開發工具資源,並提供配套案例指導開發者從開發編碼到應用調測,基於華為根技術生態高效便捷的知識學習、技術體驗、應用創新。

2. 適用對象

  • 企業
  • 個人開發者
  • 高校學生

3. 案例時間

本案例總時長預計60分鐘。

4. 案例流程

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境

説明:

  1. 申請華為雲開發者空間的GaussDB數據庫;
  2. 進入華為雲開發者空間的雲開發環境,準備python環境,部署Django、Pillow、Markdown等組件;
  3. 啓用博客系統,適配GaussDB。

5. 資源總覽

本案例預計花費0.8元。

資源名稱

規格

單價(元)

時長(分鐘)

華為開發者空間 - 雲開發環境

鯤鵬通用計算增強型 kc1 | 2vCPUs | 4G | HCE

免費

60

GaussDB

gaussdb.opengauss.xe.dn.s6.xlarge.x864.ha|4 vCPUs | 16 GB

免費

60

虛擬私有云VPC

標配

免費

60

彈性公網IP

按流量計費 5Mbit/s

0.8元/GB

60

二、配置雲開發環境

本案例中,使用華為雲《開發者空間雲開發環境使用指導》的“三、PC端創建和管理雲開發環境”章節完成cli工具安裝、環境配置、創建雲開發環境、開機、建立隧道連接的功能。

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_02

三、GaussDB數據庫準備並配置

3.1 GaussDB數據庫

GaussDB數據庫實例已開通,如未開通可參考:購買GaussDB實例

注意:部署的Django項目需要對接GaussDB,因此GaussDB需要綁定EIP。

購買完成後在實例的基礎信息頁修改安全組,開放22端口與8000端口:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_03

3.2 修改GaussDB數據庫密碼驗證方式

進入GaussDB數據庫控制枱,進入GaussDB實例,點擊參數管理,修改GaussDB的密碼驗證參數 password_encryption_type 為 1,並點擊保存生效。

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_04

在彈出窗口輸入YES,點擊確定按鈕:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_05

3.3 初始化數據庫及用户

登錄後創建數據庫:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_06

點擊數據庫名稱進入庫管理,然後點擊sql窗口:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_07

創建blog用户:

create user blog with sysadmin password 'Gauss#123';

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_08

四、Python環境準備

參考《本地VSCode基於華為開發者空間雲開發環境完成小程序開發》的“三、本地IDE直連雲開發環境完成上傳下載”中的“1.下載VS Code 並安裝 Remote-SSH 插件、2.連接雲開發環境”章節完成VS Code直連雲開發環境。

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_09

4.1 創建項目虛擬環境

因為業務場景的Python開發,多數都是構建一個大型應用程序,並且不希望各種組件的各種版本之間相互衝突,所以需要設置一個虛擬環境。

先需要更新下載源。執行如下命令:

sudo yum -y update
sudo yum -y upgrade

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_10

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_11

安裝virtualenv:

pip3 install virtualenv  -i https://repo.huaweicloud.com/repository/pypi/simple/

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_12

創建虛擬環境:

python3 -m venv myenv

激活環境:

source myenv/bin/activate

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_13

環境激活後,用户名前會有(myenv)字樣,如上圖所示。

4.2 python模塊安裝

安裝之前,更新pip:

python3 -m pip install --upgrade pip -i https://repo.huaweicloud.com/repository/pypi/simple/

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_14

使用pip3依次安裝django、markdown、Pillow模塊:

pip3 install django==3.2 -i https://repo.huaweicloud.com/repository/pypi/simple/
pip3 install markdown==3.6 -i https://repo.huaweicloud.com/repository/pypi/simple/
pip3 install Pillow==10.3.0 -i https://repo.huaweicloud.com/repository/pypi/simple/

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_15

注:安裝django3.2版本,因為默認安裝是django4.2.23,對PG內核版本要求至少在pg12以上,但GaussDB的pg內核是9.204,不滿足django4.2.23需求。

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_16

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_17

4.3 安裝GaussDB數據庫對應的Python驅動

GaussDB數據庫對應的Python驅動為psycopg2。即Django組件允許通過psycopg2驅動,連接GaussDB數據庫,並操作數據對象。

不建議直接用pip去安裝psycopg2驅動。所以從華為雲GaussDB數據庫官方文檔中下載驅動。

依次執行以下命令:

wget https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1750076538851/GaussDB_driver.zip

unzip GaussDB_driver.zip

cd GaussDB_driver/Centralized/Hce2.0_arm_64/

tar zxvf GaussDB-Kernel_505.2.1_Hce_64bit_Python.tar.gz

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_18

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_19

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_20

解壓後有兩個文件夾:

  • psycopg2:psycopg2庫文件;
  • lib:lib庫文件。

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_21

使用root用户將psycopg2複製到python安裝目錄下的site-packages文件夾下:

sudo cp psycopg2 $(python3 -c 'import site; print(site.getsitepackages()[0])') -r

修改psycopg2目錄權限為755:

sudo chmod 755 $(python3 -c 'import site; print(site.getsitepackages()[0])')/psycopg2 -R

將psycopg2目錄添加到環境變量$PYTHONPATH,並使之生效:

export PYTHONPATH=$(python3 -c 'import site; print(site.getsitepackages()[0])'):$PYTHONPATH

將解壓後的上述lib目錄,配置在環境變量LD_LIBRARY_PATH中:

本案例對應的lib目錄是/home/developer/GaussDB_driver/Centralized/Hce2.0_arm_64/lib,開發者根據自己實際情況做修改。

export LD_LIBRARY_PATH=/home/developer/GaussDB_driver/Centralized/Hce2.0_arm_64/lib:$LD_LIBRARY_PATH

在創建數據庫連接之前,需要先加載如下數據庫驅動程序:

python -c "import psycopg2;"

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_22

注意:如果引入psycopg2報找不到libpq.so.5.5,是因為環境變量LD_LIBRARY_PATH沒有包含libpq.so.5.5的目錄路徑,由於上述步驟5用export設置的臨時環境變量,所以在新的會話中需要重新設置LD_LIBRARY_PATH指定之前解壓的驅動lib目錄。

五、程序使用

開源項目:django-dog-blog,一個基於bear blog樣式的Django博客系統。

5.1 下載代碼

點擊Download ZIP下載,並解壓:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_23

5.2 VS Code上傳代碼

選擇解壓後的文件夾,拖入VS Code:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_24

5.3 VS Code修改代碼

打開dogBlog目錄,雙擊setting.py文件,修改數據庫信息,搜索DATABASES,用如下代碼替換:

DATABASES = {
    "default": {
        'ATOMIC_REQUESTS': 'True',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'blog',  # 數據庫名
        'USER': 'blog',  # 用户名
        'PASSWORD': 'xxx', # 3.3中創建blog用户設置的密碼
        'HOST': 'xx.xx.xx.xx',  # 生態版GaussDB彈性公網ip
        'PORT': '8000',  # GaussDB數據庫端口
    }
}

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_25

注意:修改後要記得保存。

5.4 初始化數據庫表

進入django-dog-blog-main目錄下:

cd django-dog-blog-main/

初始化數據庫表:

python3 manage.py migrate

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_26

再次回到GaussDB雲數據庫的SQL查詢界面,Schema選擇blog,可以看到初始化的數據庫表:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_27

5.5 初始化admin登錄用户

向auth_user表中插入數據,初始化登錄用户:

INSERT INTO blog.auth_user (password,last_login,is_superuser,username,first_name,last_name,email,is_staff,is_active,date_joined) VALUES 
('pbkdf2_sha256$260000$Z3UtLaQ8NRzYybNQdbVZxG$N/RLkprzi/XKTije/0b6naQXKQyFvCD8dLboA08H4Uc=','2025-08-20 17:24:51.629',true,'admin','admin','admin','123@qq.com',true,true,'2025-08-20 16:43:33.724');

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_28

注意:blog.auth_user中的blog要和數據庫的Schema保持一致。

5.6 啓動博客系統

進入django-dog-blog-main目錄下:

cd django-dog-blog-main/

啓動博客系統:

python3 manage.py runserver 0.0.0.0:8080

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_29

點擊 Open in Browser

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_30

點擊登錄,輸入用户名:admin,密碼:Gauss#123:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發環境_31

點擊分類,分別創建類別創建標籤

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_32

輸入類別名稱:GaussDB,點擊提交按鈕:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_33

輸入標籤名稱:空間案例,點擊提交按鈕:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_34

點擊創作按鈕,輸入以下信息:

類別:GaussDB;
標題:GaussDB博客系統;
正文:開發者空間GaussDB的極簡博客系統。

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_開發者_35

博客展示:

基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統_數據庫_36

至此,基於遠程開發環境部署Django與開發者空間GaussDB的極簡博客系統案例已全部完成。