dajngo+react+docker技術棧

dajngo+react+element+docker技術棧

2020/6 爲了在能做點工作的時候儘快將想法實現,經過慎重考慮,將mysql+python+dajngo+react+docker技術棧轉變爲自己的東西,決定重新總結運用這些技術

0.環境與選型說明

輔助工具的資源安裝準備不贅述,本文重點放在dajngo和react上面

項目版本 說明
Windows+WMware 開發環境爲windows,虛擬機軟件爲VM15,原因窮且志堅
MySQL5.7 關係型數據庫mysql,滿足存儲各種數據需要;用navicat管理
Python3.6 後端開發語言,最爲熟悉也最難寫整齊的語言;包管理用pipenv
Django2.2 Python Web主流框架,使用其自帶的admin用戶模塊;開發IDE偏好VSCode,同時也會使用pycharm
React16.13.1 前端框架,主流且環境友好
Windows Server 2019(虛擬機) 服務器,已經部署好Active Directory(AD域服務),用來管理賬戶密碼認證
Centos8(虛擬機) 【未來】用來運行web應用;nginx、gunicorn集成再考慮
Docker、K8S 【未來】用來部署集成web應用

1.技術棧選型

  1. python和mysql

mysql必定選5.7,python選3.6-3.8都可以

連接器/ Python版本 MySQL服務器版本 Python版本 連接器狀態
8.0 8.0、5.7、5.6、5.5 3.8、3.7、3.6、3.5、3.4、2.7 一般可用性
2.2(接8.0) 5.7、5.6、5.5 3.5、3.4、2.7 開發人員里程碑,暫無發佈
2.1 5.7、5.6、5.5 3.5、3.4、2.7、2.6 一般可用性
2.0 5.7、5.6、5.5 3.5、3.4、2.7、2.6 GA,最終版本於2016-10-26
1.2 5.7、5.6、5.5(5.1、5.0、4.1) 3.4、3.3、3.2、3.1、2.7、2.6 GA,最終版本於2014-08-22
  1. python和django
    djnago選2.2,理由是Django2.2LTS支持到2022年
  • 從django支持的版本就可得到:1.11和2.2爲長期支持版本,對應的最新版本分別是1.11.292.2.13
  • 之前的項目使用的是1.11,基本上從現在(2020年)此後兩年選用2.2版本沒得問題
  • 看到django3支持基於ASGI的異步通信,等2021年4月3.2版本出來後,開發環境可以直接從2.2躍遷過去。爲了更穩健地開發,我會選擇django2.2作爲後端開發框架
django版本 python版本
1.11 2.7、3.4、3.5、3.6、3.7(1.11.17添加)
2.0 3.4,3.5,3.6,3.7
2.1 3.5,3.6,3.7
2.2 3.5,3.6,3.7,3.8(在2.2.8中添加)
3.0、3.1、3.2 3.5、3.6、3.7、3.8

在這裏插入圖片描述
在這裏插入圖片描述

2.django2.2搭建配置與react的安裝配置

2.1.django後端

2.1.1.pipenv 管理項目所需python三方庫環境

環境管理,之前的項目使用的是pipenv去創建獨立的項目環境,pipenv用pip安裝即可。

pip install pipenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

步驟

在E:\randolph文件夾下創建空文件夾husky_ad_web
進入husky_ad_web文件夾,地址欄輸入cmd打開命令窗口
# 創建pipenv虛擬環境
pipenv install
# 進入虛擬環境
pipenv shell
# 安裝指定版本django框架
pip install django==2.2.13

截圖記錄如下:
在這裏插入圖片描述

檢查有沒有安裝任何第三方炸藥包:
在這裏插入圖片描述
pip從豆瓣庫安裝指定版本的django到環境中:

pip install django==2.2.13 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

在這裏插入圖片描述檢查安裝情況:
在這裏插入圖片描述

2.1.2.django項目的創建

django-admin命令創建後端項目,進入項目文件夾husky_ad_web並啓動開發服務器:

django-admin startproject husky_ad_web
cd husky_ad_web
python manage.py runserver

在這裏插入圖片描述
文件結構
在這裏插入圖片描述
這裏解釋一下:第一層husky_ad_web項目名創建出來用來創建pipenv虛擬環境,安裝django,然後用django-admin命令創建django項目也就是第二層的husky_ad_web文件夾,裏面有一個和項目名同名的app、db.sqlite3是自帶的數據庫(之後需要替換成mysql)、manage.py管理工具。

2.1.3.django項目的超管賬戶創建和切換mysql數據庫並數據初始化

接上一步在cmd中ctrl+c關閉開發服務器
數據庫遷移並創建超級用戶

python manage.py migrate
python manage.py createsuperuser

在這裏插入圖片描述
再次開啓開發服務器,用超級管理員登陸:
url後綴拼接一個admin,就會進到登錄頁面

http://127.0.0.1:8000/admin

在這裏插入圖片描述
登錄後;瞭解一下已經有的功能——admin模塊
在這裏插入圖片描述

接下來切換mysql數據庫,修改settings遷移數據庫,刪掉db.sqlite3
用vscode打開項目(偏好),安裝django插件,點擊左側欄運行圖標,選擇launch.json後點選django即可debug。
在這裏插入圖片描述

換成mysql庫詳細步驟:
先用navicat打開本機mysql數據庫,創建一個數據庫:
在這裏插入圖片描述
新建數據庫:
在這裏插入圖片描述
然後回來修改django項目的配置文件,在settings中配置數據庫jdbc信息:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'husky_ad_web',
        'HOST': 'localhost',
        'USER': 'root',
        'PASSWORD': 'adqwe123',
        'PORT': '3306'
    }
}

然後跑項目,改django源碼,將會出現三種種正常報錯:

# 1.出現Did you install mysqlclient?則:
# 安裝pymysql(若沒安裝) 需要重啓vscode
pipenv shell進入pipenv環境
pip install pymysql
# 後端根目錄__init__.py文件添加
import pymysql
pymysql.install_as_MySQLdb()
# 2.出現mysqlclient 1.3.13 or newer is required; you have 0.9.3.則修改django\db\backends\mysql\base.py文件,將版本號判斷那倆行註釋掉
# 3.出現str對象沒decode屬性則註釋掉operations.py的判斷語句 或者將str.decode修改成str.encode()方法

第一個報錯
在這裏插入圖片描述
在這裏插入圖片描述
第二個報錯
在這裏插入圖片描述
解決
在這裏插入圖片描述
第三個報錯
在這裏插入圖片描述
解決,註釋掉註釋語句
在這裏插入圖片描述
然後django項目終於起來了;
接着需要遷移數據庫:
python manage.py migrate
然後發現mysql數據庫中husky數據庫中多了django框架admin組件的相關表:
在這裏插入圖片描述
這時候因爲遷移了數據庫,沒有數據,再創建superuser才能在數據庫中看到超級用戶的數據:
python manage.py createsuperuser
在這裏插入圖片描述
現在可以直接將項目中的db.sqlite3刪除了,接下來django項目的admin模塊的數據都是從我們的mysql數據庫中獲得的了。

2.1.3.創建一個app作爲後端
python manage.py startapp backend

結構如下:
在這裏插入圖片描述

2.2.react前端

待定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章