將Django項目遷移到linux系統(tǒng)的詳細步驟
Django項目配置修改
我們需要把原先的Django項目進行修改才能更好地進行項目遷移工作,首先需要修改的是settings.py文件。

由于項目上線之后不能讓用戶看到后臺的運行邏輯,所以我們要把DEBUG改成False,把ALLOWED_HOSTS寫成‘*’,這樣是為了允許從不同主機進行訪問。

由于linux中如果不加這句可能會出現(xiàn)文件找不到的情況,所以我們要把模板的路徑進行拼接。

由于做Django項目肯定進行過數(shù)據(jù)庫的同步,所以我們要把migrations中的同步文件刪除,以便在linux系統(tǒng)中的數(shù)據(jù)庫同步。
項目環(huán)境以及數(shù)據(jù)庫打包
首先我們需要把Django環(huán)境進行打包。

我是用的是沙箱環(huán)境就直接進入到沙箱環(huán)境中,然后執(zhí)行上述命令進行打包。
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名1 表名2 >導(dǎo)出的sql文件名
然后把數(shù)據(jù)庫結(jié)構(gòu)導(dǎo)出成一個sql文件,這里需要注意的是,導(dǎo)出數(shù)據(jù)庫時,不要把表全都導(dǎo)出,只導(dǎo)出自己創(chuàng)建的表即可。
然后我們可以通過xftp把項目環(huán)境、sql文件以及自己的完整項目傳到linux上面。
linux系統(tǒng)中的配置
1、python3的安裝
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錯誤。
上述步驟做完之后我們可以看到當(dāng)前路徑下出現(xiàn)了一個python文件,我們進入到此文件夾中進行編譯安裝

這里我們默認(rèn)安裝在usr/loacl/python3下。
運行結(jié)束之后執(zhí)行make && make install命令
然后進行軟鏈接設(shè)置
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
直到這里我們就實現(xiàn)了python3和python2的共存,輸入python3和pip3就使用的是python3,輸入python和pip使用的就是python2.
2、第二步就是數(shù)據(jù)庫的配置
由于自centos7之后linux就不兼容mysql數(shù)據(jù)庫了,而是使用mariadb數(shù)據(jù)庫,所以我們也要使用mariadb數(shù)據(jù)庫,其實這兩個數(shù)據(jù)庫一模一樣,連命令都一樣,就是改了個名字。
我們只需要啟動mariadb數(shù)據(jù)庫就可以了
systemctl start mariadb #啟動mariadb數(shù)據(jù)庫 systemctl enable mariadb #開機啟動mariadb數(shù)據(jù)庫
數(shù)據(jù)庫啟動之后我們就可以使用mysql -uroot -p來進入數(shù)據(jù)庫了
項目整合與配置
上述準(zhǔn)備工作都做完之后我們就可以在linux系統(tǒng)上配置我們的Django項目了
首先我們需要配置Django環(huán)境。
pip install -r package.txt
然后進行數(shù)據(jù)庫同步,我們首先需要創(chuàng)建對應(yīng)的庫,然后執(zhí)行
這里在進行數(shù)據(jù)庫匹配的時候可能會報錯
raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解決辦法:
C:\Python37\Lib\site-packages\django\db\backends\mysql(python安裝目錄)打開base.py,注釋掉以下內(nèi)容:
if version < (1, 3, 13):
raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
python3 manage.py makemigrations python3 manage.py migrate
然后查看一下自己的數(shù)據(jù)庫是不是出現(xiàn)了對應(yīng)表,然后導(dǎo)入sql文件
source sql文件路徑
直到這里我們的Django項目就完成了遷移。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django開發(fā)web后端對比SpringBoot示例分析
這篇文章主要介紹了Django開發(fā)web后端對比SpringBoot示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
Python 實現(xiàn)一個簡單的web服務(wù)器
這篇文章主要介紹了Python 實現(xiàn)一個簡單的web服務(wù)器的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2021-01-01
python創(chuàng)建列表和向列表添加元素的實現(xiàn)方法
下面小編就為大家分享一篇python創(chuàng)建列表和向列表添加元素的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Python?Setuptools的?setup.py實例詳解
setup.py是一個?python?文件,它的存在表明您要安裝的模塊/包可能已經(jīng)用?Setuptools?打包和分發(fā),這是分發(fā)?Python?模塊的標(biāo)準(zhǔn)。?它的目的是正確安裝軟件,本文給大家講解Python?Setuptools的?setup.py感興趣的朋友跟隨小編一起看看吧2022-12-12
淺析pytorch中對nn.BatchNorm2d()函數(shù)的理解
Batch Normalization強行將數(shù)據(jù)拉回到均值為0,方差為1的正太分布上,一方面使得數(shù)據(jù)分布一致,另一方面避免梯度消失,這篇文章主要介紹了pytorch中對nn.BatchNorm2d()函數(shù)的理解,需要的朋友可以參考下2023-11-11
python實現(xiàn)word 2007文檔轉(zhuǎn)換為pdf文件
這篇文章主要為大家詳細介紹了python實現(xiàn)word 2007文檔轉(zhuǎn)換為pdf文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03

