宝塔部署django项目的过程

一. 安装python(这里安装的版本为python3.5.2)

1.安装相关包

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make


2.编译安装python3

安装方式:可以去官网下载编译安装包或者是直接执行以下命令

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz

3.解压缩

tar -xvjf Python-3.5.2.tar.xz

4.进入解压后的文件夹

cd Python-3.5.2

5.编译安装

./configure prefix=/usr/local/python3

make && make install

6.添加软链接

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

到此,/usr/local目录下就会有python3,我们可以通过使用pip3 install安装python3的安装包

 

 

添加域名(项目中运用到数据库mysql,选择数据库)

宝塔部署django项目的过程_第1张图片

域名添加完成后,自动创建站点的文件夹,这里路径为/www/wwwroot/wangqu.haichong.xyz,其中会有两个默认的文件404.html和index.html

上传项目,这里上传的为wangqu.zip文件夹,然后进行解压缩到/www/wwwroot/wangqu.haichong.xyz,之后便生成一个新的文件夹wangqu,项目便存在wangqu文件夹中,这时我们将默认生成的文件也移动到wangqu文件夹下面

cd /www/wwwroot/wangqu.haichong.xyz

mv 404.html ./wangqu

mv index.html ./wangqu

 

文件上传成功后,文件夹下的内容显示如下:

宝塔部署django项目的过程_第2张图片

 

之后在项目文件夹中添加一个新文件,命名为mysite.xml并添加内容

cd /www/wwwroot/wangqu.haichong.xyz/wangqu

vim mysite.xml

mysite.xml文件内容如下:

    
   127.0.0.1:8088  

   /www/wwwroot/wangqu.haichong.xyz/wangqu    
         
   Community.wsgi  
          

   4      
   
   uwsgi.log 

 

添加配置文件,(其中的端口号需要和mysite.xml文件中的端口号一致)

宝塔部署django项目的过程_第3张图片

 

进入linux面板安装uwsgi

pip3 install uwsgi

启动nginx服务


cd /www/server/nginx/sbin

./nginx -t   #重启并载入配置

 

项目完善


cd /www/wwwroot/wangqu.haichong.xyz/wangqu/

python3 manage.py makemigrations  #创建迁移脚本

python3 manage.py migrate  #迁移

python3 manage.py collectstatic  #收集静态资源

uwsgi -x mysite.xml

 

 

ps:在创建迁移脚本的时候,可能会报错,No changes detected

原因:这个可能是项目工程的setting.py中没有注册子程序,需要添加子程序名在setting.py中

解决: website为我的项目子程序名,文件中包含url.py,admin.py文件等等

宝塔部署django项目的过程_第4张图片

执行完成之后,再次执行创建迁移脚本,如果仍出现同样的问题,可以在迁移脚本的时候,后面添加app的名字

python3 manage.py makemigrations website

 

 

 

PS:如果出现No migrations to apply, 解决方法如下:

  1. 删除app名字下面的migrations文件

  2. 进入数据库,找到django_migrations的表,删除该app名字的所有记录 

    delete from django_migrations;

  3. 执行迁移脚本,以及迁移

 

 

 

PS:如果出现You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ 6) NOT NULL’ at line 1

原因:django版本和mysql的版本出现冲突

我的解决:pip3 install django==2.0.0

 

 

 

你可能感兴趣的:(python)