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添加了*
参考