Django環境搭建過程記錄
Django環境搭建
直接使用pip安裝django,安裝後要在環境變數中新增python安裝位置下的
Python\Python38-32\Scripts
Python\Python38-32\Lib\site-packages\django
這樣後面才能使用django的管理程式django-admin. py/django-admin
其他操作可以參考django
發現django支援熱過載,也算是和js差不多了
Django在linux環境下啟動遇到的問題
在windows中修改好環境變數即可使用Django,但在centos啟動時遇到sqlite版本不匹配的問題,使用更新sqlite的方式進行修復。
centos中預設自帶的sqlite版本為3.7.17,在使用最新版本django3.1.2時,由於需要的sqlite版本過低會導致.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
的問題,在設定中需要更新本地版本的sqlite,可以在sqlite官網下載響應的檔案到linux伺服器,安裝更新即可
該安裝包可以在官網找到SQLite,找到最新版本的gz檔案並獲取下載連結,在linux中執行以下命令
wget https://www.sqlite.org/2020/sqlite-autoconf-3330000.tar.gz //下載的為當前最新的版本,不必按照這個也行 tar -zxvf sqlite-autoconf-3330000.tar.gz //解壓下載的問題 cd sqlite-autoconf-3330000 //跳轉到解壓的目錄 ./configure //執行配置軟體 make make install //安裝 cp sqlite3 /usr/bin/sqlite3 //將sqlite-autoconf-3330000 資料夾下則sqlite3覆蓋到系統的sqlite位置 sqlite3 -version //檢視當前的sqlite版本
參考CentOS 升級sqlite3
一般到這裡就結束了,但是在啟動django時依舊報那個錯誤,多次檢視系統版本,發現的確是更新了,在網上有人指出是不是python3中的sqlite版本沒有更新,通過以下指令
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.1.0'
發現還是舊版本,之後發現其他人在安裝好系統sqlite後還配置了自動指令碼,他們在linux系統的~/.bashrc
中進行了修改,最後如下
# .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi export LD_LIBRARY_PATH="/usr/local/lib"
其實就是增加了export LD_LIBRARY_PATH="/usr/local/lib
這一行,在查詢資料後,發現是把/usr/local/lib
作為庫包檔案的查詢備用路徑,網路上的解釋是
當執行函式動態連結.so時,如果此檔案不在預設目錄下'/lib' and '/usr/lib'.
那麼就需要指定環境變數LD_LIBRARY_PATH
也就是手動添加了一個環境變數,和win類似,缺省了就到該路徑下查詢,實際上export指令可以直接在命令列上執行一次,也有一樣的效果,但export只在當前的登入有效,也就是切換使用者或者重啟的時候就又要再來一次,所以將該指令解除安裝~/.bashrc
裡面,該檔案的為初始化檔案,每次登入都將執行,所以就避免了手動輸入的問題,此時在python中測試sqlite版本就沒問題了,再次回到django-project/HelloWorld位置,執行python3 manage.py runserver 0.0.0.0:8000
,頁面將正常顯示,如果出現
執行django專案出現Invalid HTTP_HOST header: '192.168.1.111:8000'. You may need to add '192.168.1.111' to ALLOWED_HOSTS
則在專案的setting.py檔案中,找到ALLOWED_HOSTS = [’*’] #在這裡請求的host添加了*
參考