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.技術棧選型
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 |
- python和django
djnago選2.2
,理由是Django2.2LTS支持到2022年
- 從django支持的版本就可得到:1.11和2.2爲長期支持版本,對應的最新版本分別是
1.11.29
與2.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前端
待定