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:Python37Libsite-packagesdjangodbbackendsmysql(python安裝目錄)打開base.py,注釋掉以下內(nèi)容:
if version 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項目就完成了遷移。