將Django項(xiàng)目遷移到linux系統(tǒng)的詳細(xì)步驟
Django項(xiàng)目配置修改
我們需要把原先的Django項(xiàng)目進(jìn)行修改才能更好地進(jìn)行項(xiàng)目遷移工作,首先需要修改的是settings.py文件。
由于項(xiàng)目上線之后不能讓用戶看到后臺的運(yùn)行邏輯,所以我們要把DEBUG改成False,把ALLOWED_HOSTS寫成‘*’,這樣是為了允許從不同主機(jī)進(jìn)行訪問。
由于linux中如果不加這句可能會(huì)出現(xiàn)文件找不到的情況,所以我們要把模板的路徑進(jìn)行拼接。
由于做Django項(xiàng)目肯定進(jìn)行過數(shù)據(jù)庫的同步,所以我們要把migrations中的同步文件刪除,以便在linux系統(tǒng)中的數(shù)據(jù)庫同步。
項(xiàng)目環(huán)境以及數(shù)據(jù)庫打包
首先我們需要把Django環(huán)境進(jìn)行打包。
我是用的是沙箱環(huán)境就直接進(jìn)入到沙箱環(huán)境中,然后執(zhí)行上述命令進(jìn)行打包。
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名1 表名2 >導(dǎo)出的sql文件名
然后把數(shù)據(jù)庫結(jié)構(gòu)導(dǎo)出成一個(gè)sql文件,這里需要注意的是,導(dǎo)出數(shù)據(jù)庫時(shí),不要把表全都導(dǎo)出,只導(dǎo)出自己創(chuàng)建的表即可。
然后我們可以通過xftp把項(xiàng)目環(huán)境、sql文件以及自己的完整項(xiàng)目傳到linux上面。
linux系統(tǒng)中的配置
1、python3的安裝
linux是自帶python2的,我們不需要?jiǎng)h除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命令時(shí)會(huì)報(bào)no module secrets錯(cuò)誤。
上述步驟做完之后我們可以看到當(dāng)前路徑下出現(xiàn)了一個(gè)python文件,我們進(jìn)入到此文件夾中進(jìn)行編譯安裝
這里我們默認(rèn)安裝在usr/loacl/python3下。
運(yùn)行結(jié)束之后執(zhí)行make && make install命令
然后進(jìn)行軟鏈接設(shè)置
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
直到這里我們就實(shí)現(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í)這兩個(gè)數(shù)據(jù)庫一模一樣,連命令都一樣,就是改了個(gè)名字。
我們只需要啟動(dòng)mariadb數(shù)據(jù)庫就可以了
systemctl start mariadb #啟動(dòng)mariadb數(shù)據(jù)庫 systemctl enable mariadb #開機(jī)啟動(dòng)mariadb數(shù)據(jù)庫
數(shù)據(jù)庫啟動(dòng)之后我們就可以使用mysql -uroot -p來進(jìn)入數(shù)據(jù)庫了
項(xiàng)目整合與配置
上述準(zhǔn)備工作都做完之后我們就可以在linux系統(tǒng)上配置我們的Django項(xiàng)目了
首先我們需要配置Django環(huán)境。
pip install -r package.txt
然后進(jìn)行數(shù)據(jù)庫同步,我們首先需要?jiǎng)?chuàng)建對應(yīng)的庫,然后執(zhí)行
這里在進(jìn)行數(shù)據(jù)庫匹配的時(shí)候可能會(huì)報(bào)錯(cuò)
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項(xiàng)目就完成了遷移。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)字符串和字典的轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)字符串和字典的轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09Python3以GitHub為例來實(shí)現(xiàn)模擬登錄和爬取的實(shí)例講解
在本篇內(nèi)容里小編給大家分享的是關(guān)于Python3以GitHub為例來實(shí)現(xiàn)模擬登錄和爬取的實(shí)例講解,需要的朋友們可以參考下。2020-07-07numpy中實(shí)現(xiàn)二維數(shù)組按照某列、某行排序的方法
下面小編就為大家分享一篇numpy中實(shí)現(xiàn)二維數(shù)組按照某列、某行排序的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python3 實(shí)現(xiàn)一行輸入,空格隔開的示例
今天小編就為大家分享一篇python3 實(shí)現(xiàn)一行輸入,空格隔開的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python基礎(chǔ) while循環(huán)與break、continue關(guān)鍵字
今天再帶著大家講述一下while循環(huán)。那么for循環(huán)和while循環(huán),到底有什么區(qū)別呢?下面文章就來詳細(xì)介紹,感興趣的小伙伴可以參考一下2021-10-10Python實(shí)現(xiàn)自動(dòng)化發(fā)送郵件
大家好,本篇文章主要講的是Python實(shí)現(xiàn)自動(dòng)化發(fā)送郵件,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01