django前后端分离项目部署

本文详细指导如何在CentOS7系统上安装Python3、管理依赖,配置Django项目并处理跨域问题,包括使用virtualenv创建隔离的开发环境,以及设置Django的CORS中间件以支持跨域请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1. 更新系统软件包
yum update -y
1.2. 安装软件管理包和可能使用的依赖
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
1.3. 下载Pyhton3到/usr/local 目录
cd /usr/local
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

解压

tar -zxvf Python-3.6.6.tgz

进入 Python-3.6.6路径

cd Python-3.6.6

编译安装到指定路径

./configure --prefix=/usr/local/python3

注意:/usr/local/python3 路径可以自己指定,自己记着就行,下边要用到。

安装python3

make
make install

安装完成之后,建立软链接——添加变量,方便在终端中直接使用python3

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

Python3安装完成之后pip3也一块安装完成,不需要再单独安装
同样给pip3建立软链接

ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
1.4. 查看Python3和pip3安装情况 
python3
pip3 -V
1.5. 安装virtualenv ,建议大家都安装一个virtualenv,方便不同版本项目管理。
pip3 install virtualenv

建立软链接 

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

安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。(个人习惯,其它人可根据自己的实际情况处理)

mkdir -p /data/env
mkdir -p /data/wwwroot
1.6. 切换到/data/env/下,创建指定版本的虚拟环境。
cd /data/env
virtualenv --python=/usr/bin/python3 pyweb

然后进入/data/env/pyweb/bin

cd /data/env/pyweb/bin

启动虚拟环境: 

source activate

出现(pyweb),说明是成功进入虚拟环境

1.7. 虚拟环境里用pip3安装django和uwsgi
pip3 install django (如果用于生产的话,则需要指定安装和你项目相同的版本)
pip3 install uwsgi

留意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。

给uwsgi建立软链接,方便使用。

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
1.8. 安装PyMySQL模块
pip3 install PyMySQL
2.1解决跨域问题
pip3 install django-cors-headers
INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
 ] 
 
MIDDLEWARE_CLASSES = (
    ...
    'corsheaders.middleware.CorsMiddleware', # 注意顺序
    'django.middleware.common.CommonMiddleware', # 注意顺序
    ...
)
# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True

# 笔者注释了以下三行,否则报错
# CORS_ORIGIN_WHITELIST = (
#     '*'
# )
 
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
 
CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

注意:
① cors-headers的中间件CorsMiddleware在注册时必须放在django-common中间件的前一个。
② 笔者注释了以下代码,否则报错。

2.2. 启动项目
python3 manage.py runserver 0.0.0.0:9090

参考:项目实战——本地Django项目(后端)部署至腾讯云服务器/CentOS 7 - 简书 (jianshu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值