我們需要把原先的Django專案進行修改才能更好地進行專案遷移工作,首先需要修改的是settings.py檔。
因為專案上線之後不能讓使用者看到後台的運作邏輯,所以我們要把DEBUG改成False,把ALLOWED_HOSTS寫成‘*’,這樣是為了允許從不同主機存取。
由於linux中如果不加這句可能會出現檔案找不到的情況,所以我們要把模板的路徑進行拼接。
由於做Django專案肯定進行過資料庫的同步,所以我們要把migrations中的同步檔案刪除,以便在linux系統中的資料庫同步。
首先我們需要把Django環境進行打包。
我是用的是沙箱環境就直接進入沙箱環境中,然後執行上述指令進行打包。
mysqldump -u 使用者名稱-p 資料庫名稱表名1 表名2 >匯出的sql文件名
然後把資料庫結構匯出成sql文件,這裡要注意的是,匯出資料庫時,不要把表格全都匯出,只匯出自己建立的表格即可。
然後我們可以透過xftp把專案環境、sql檔以及自己的完整專案傳到linux上面。
linux是自帶python2的,我們不需要刪除python2,只是讓python2和python3共存就可以了。
首先安裝python3的依賴套件
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
然後下載python3的安裝套件
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
解壓縮安裝套件
tar -xvJf Python-3.6.2.tar.xz
這裡如果安裝的是3.5版本的python,在使用manage.py指令時會報no module secrets錯誤。
上述步驟做完之後我們可以看到當前路徑下出現了一個python文件,我們進入到此資料夾中進行編譯安裝
這裡我們預設安裝在usr/loacl/python3下。
運行結束之後執行make && make install指令
#然後進行軟連結設定
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
直到這裡我們就實作了python3和python2的共存,輸入python3和pip3就使用的是python3,輸入python和pip使用的就是python2.
由於自centos7之後linux就不相容mysql資料庫了,而是使用mariadb資料庫,所以我們也要使用mariadb資料庫,其實這兩個資料庫一模一樣,連指令都一樣,就是改了個名字。
我們只需要啟動mariadb資料庫就可以了
systemctl start mariadb #启动mariadb数据库 systemctl enable mariadb #开机启动mariadb数据库
資料庫啟動之後我們就可以使用mysql -uroot -p來進入資料庫了
上述準備工作都做完之後我們就可以在linux系統上設定我們的Django專案了
#首先我們需要設定Django環境。
pip install -r package.txt
然後進行資料庫同步,我們首先需要建立對應的函式庫,然後執行
這裡在進行資料庫比對的時候可能會報錯
raise ImproperlyConfigured( ‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
django.core.exceptions.ImproperlyConfigured: myclient 1.3.13 or newh. 3.
解決方法:
然後查看自己的資料庫是不是出現了對應表,然後導入sql檔##source sql檔路徑C:\Python37\Lib\site-packages\django\db\backends\mysql(python安裝目錄)開啟base.py,註解掉以下內容:
if versionpython3 manage.py makemigrations python3 manage.py migrate
##直到這裡我們的Django專案就完成了遷移。
以上是怎麼將Django專案遷移到linux系統中的詳細內容。更多資訊請關注PHP中文網其他相關文章!