python-Django项目实战-基础部署

144 阅读6分钟

基础部署与运行

我们已经完成音乐网站平台的所有功能开发,接下来运行整个项目,测试每个页面的功能是否符合开发需求。

上线部署

在试运行项目之前,还需要设置项目的上线模式,因为自定义异常页面只能在上线模式。

首先打开配置文件setting.py,在该文件中设置以下配置属性:

DEBUG = False
ALLOWED_HOSTS = ['*'] # 当然也可以只写公网ip *代表主机所有可用ip
STATIC_ROOT = BASE_DIR / 'static' 

当Django设为上线模式时,它不再提供静态资源服务,该服务应交由Nginx或Apache服务器完成,因此在项目的路由列表添加静态资源的路由信息,让Django知道如何找到静态资源文件,否则无法在浏览器上访问static文件夹的静态资源文件,路由信息如下:

from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serve
from django.conf import settings
​
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('index.urls')),
    path('ranking.html', include('ranking.urls')),
    path('play/', include('play.urls')),
    path('comment/', include('comment.urls')),
    path('search/', include('search.urls')),
    path('user/', include('user.urls')),
​
    # 定义静态资源的路由信息
    re_path('static/(?P<path>.*)', serve, {'document_root': settings.STATIC_ROOT}, name='static'),
    # 定义媒体资源的路由信息
    re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media'),
]
​

综上所述,设置Django项目上线模式的操作步骤如下:

  • 在项目的setting.py中设置配置属性STATIC_ROOT,该配置指向整个项目的静态资源文件夹,然后修改配置属性DEBUG和ALLOWED_HOSTS。
  • 使用collectstatic指令收集整个项目的静态资源,这些静态资源将存放哎配置属性STATIC_ROOT设置的文件路径中。
  • 在项目的urls.py中添加静态资源的路由信息,让Django知道如何找到静态资源文件。

购买服务器

服务器优先选择租用。租一个服务器(一台线上电脑)有公网IP + 配置环境即可,购买需要注意以下点:

1,优先选择啊里云/腾讯云等大厂的服务器

腾讯云:cloud.tencent.com/

阿里云:www.aliyun.com/

2,购买需要注意安装系统的版本,部署都会用LINUX。如centos7.5,原因如下:

1,WINDOWS是收费的 图形化界面,运行加载资源慢

2,LINUX免费,非图形界面,加载快

3, 可以查看服务器的优惠活动进行购买

1,如你是第一次购买往往会有很大优惠

4, 购买完成服务器后

1,确认自己的公网IP

2,修改密码后远程上服务器 和 修改系统镜像为centos7.5

服务器远程

远程连接服务器可以使用提供的连接页面进行远程 也可以下载Xshell,finalshell等远程工具进行远程,mac可使用(item2)

1689664725083

Xshell下载官网:www.xshell.com/zh/free-for… 以下演示finalshell连接:

通常都使用ssh进行连接

服务器系统设置

购买的服务器需要设置 端口和安全组,找到服务器页面的安全组选项,配置如下示例

22 SSH

3306 mysql

8379 redis

80 浏览器端口

443 https 浏览器端口

如果想支持这个功能,需要开发对应端口,除了这些还要去设置django需要使用的端口进行开放

以上服务器准备就完事了

服务器基础操作

3,熟悉常用基础的linux命令

注:因为没有可视化界面,所有操作都使用命令运行。

如系统目录结构 ​ 删除 创建 移动 重命名 进入 解压 复制 编辑

保存退出 配置环境变量 等基础命令操作

需要查看老师提供的基础命令文档进行学习

配置服务器项目环境

1,python 安装,需要根据项目所需版本进行安装,也可以参考老师安装文档 ​ 2,虚拟环境 配置虚拟环境可以分割项目环境 ​ 3,uwsgi 接受用户请求连接 (处理python代码非常厉害 静态文件就不行了) ​ 4,nginx 做反向代理 是优先接收请求 ,如果是代码请求,如视图代码。转发给uwsgi处理python代码,如果是文件就自动处理

5,mysql安装 安装也可以参考老师安装文档

以下为完全流程:

1689587174780

安装python

项目安装版本3.8.0

sudo yum update

线上安装大约需要半小时,注意是网络请求的问题 ​ 建议下载后使用本地的文件进行安装,安装具体流程参考老师提供的文档

安装mysql

1 安装mysql选择3.7或者以上的版本

2 安装分为在线版本和离线版本

在线版本就是使用命令源在网络上下载对应版本的安装包,需要注意网络会影响下载速度

离线安装指得是在自己电脑上下载好,上传到服务器直接解压安装,不会收到网络的影响

安装具体流程参考老师提供的文档

Python模块迁移

获取第三方库信息,作用是将当前的模块和版本全部放入到requirements.txt的文件

以下命令在自己命令窗口运行

pip freeze > requirements.txt

服务器安装python的依赖文件

pip3 install --upgrade pip # 更新pip
pip3 install --upgrade setuptools # pip install --upgrade setuptools
pip3 install -r requirements.txt # 将文件上传到服务器后在对应版本使用命令安装所有版本

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: pip.pypa.io/warnings/ve…

这个警告是在使用root用户身份运行pip时出现的,它提醒您在root用户下使用pip可能会导致权限问题和与系统包管理器冲突的行为。它建议您使用虚拟环境来代替。虚拟环境在后面会进行构建。

数据库数据迁移

备份数据库提取sql文件,将文件上传到服务器

CREATE DATABASE 数据库名; # 创建数据库:
CREATE DATABASE music_db; # 创建数据库:

将数据库名替换为您要创建的数据库名称。

确认数据库已创建:

SHOW DATABASES;

迁移数据,是在外部运行的,不需要进入到数据库。

/var/www/music/20230718203142.sql 是备份文件路径

Navicat 可以备份后选择备份文件点击提取sql获取文件

mysql -uroot -p music_db < /var/www/music/20230718203142.sql 
Enter password: 数据库密码

测试运行

将代码打包上传到服务器后 venv文件可以不打包

yum install unzip # 安装解压工具
unzip xxx.zip # 选择一个好地方解压文件

启动项目

python3 manage.py runserver 0.0.0.0:8000
// 后台挂起运行
nohup python3 manage.py runserver 0.0.0.0:8000

到此,基础的部署配置就完成了。