Django项目window环境部署

news2024/11/16 3:42:42

最近刚好有时间,把前端时间使用django框架开发的音乐网站部署到本地电脑上,在这里记录一下部署过程。

环境配置

Python 3.7.5

Django 3.2.20

Apache 2.4.39

电脑64位

生产环境配置

设置生产环境静态配置

示例如下:

# 生产环境静态资源配置
# 当配置属性DEBUG设为False时,Django不再提供静态文件代理服务,
此时需要设置STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

这时如果设置了STATICFILES_DIRS,如果路径一致,可能会有报错,

就可以把这一项注释掉,生产环境不再使用这项配置。

示例如下:

# STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)

 

定义静态资源路径

当django设为上线模式时,它不再提供静态资源服务,该服务应交由服务器来完成,因此在项目的路由列表中添加静态资源的路由信息。

设置myMusic/urls.py中路由信息。

示例如下:

urlpatterns = [
    path('admin/', admin.site.urls),
    # 配置媒体资源路由
    re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media'),
    # 配置静态资源路由
    re_path('static/(?P<path>.*)', serve, {'document_root': settings.STATIC_ROOT}, name='static'),

    # 音乐网站前端路由
    path('', include(('player.urls', 'player'))),
]

切换运行模式

将Django设为上线模式(DEBUG=False),修改myMusic/settings.py中DEBUG=False.

示例如下:

DEBUG = False

设置允许访问

示例如下:

ALLOWED_HOSTS = ['*']

整理生产静态文件

使用Django内置指令collectstatic,它复制了静态资源文件夹static里面的所有静态资源,并且还复制了Admin后台系统的静态资源。

命令如下:

python manage.py collectstatic

效果如下:

安装mod_wsgi

Apache模块可以托管任何支持python wsgi规范的python web应用程序。Apache需要提前安装如果没有请先安装Apache。

下载mod_wsgi

地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

 

下载适合自己的mod_wsgi模块,比如我的python版本为3.7,电脑为64位,就选择cp37,win_amd64那一项。

点击进行下载

安装mod_wsgi

直接在下载的文件夹中右键打开CMD窗口安装mod_wsgi。

命令如下

pip install mod_wsgi-4.9.0-cp37-cp37m-win_amd64

安装如下:

 

查看模块配置信息

使用命令mod_wsgi-express module-config查看模块配置信息。

配置信息在之后的服务器配置时需要使用。

配置信息如下:

 

Apache配置django

打开Apache的配置文件httpd.conf,在配置文件的末尾,配置你的Django项目信息如下:

配置如下:

# Django项目部署
# 添加mod_wsgi.so模块
# 之前安装mod_wsgi时查看配置的信息
LoadFile "E:/python/python37.dll"
LoadModule wsgi_module "E:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "E:/python"

# 指定django项目的wsgi配置文件路径
WSGIScriptAlias / E:/lianxipy/myMusic/myMusic/wsgi.py

# 配置django项目后台路径
WSGIPythonPath E:/lianxipy/myMusic
<Directory E:/lianxipy/myMusic/myMusic>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>
# 配置django项目静态文件路径
Alias /static E:/lianxipy/myMusic/static
<Directory E:/lianxipy/myMusic/static>
    AllowOverride None
    Options None
    Require all granted
</Directory>

配置后重启apache,访问127.0.0.1发现访问成功,效果如下:

绑定本地域名访问

直接配置到httpd.conf中后,发现配置的其他域名都无法访问了;

故配置了单独的域名,并把配置文件改到vhost中。

创建网站

使用study_pro创建网站指定python项目路径。

修改网站配置

因为网站是使用python django开发的,所以配置需要修改。

通过【设置】->【配置文件】使用记事本打开local.music.com配置文件。

项目路径改为你的项目路径和python环境地址。

修改配置文件如下:

# Django项目部署
# 添加mod_wsgi.so模块
LoadFile "E:/python/python37.dll"
LoadModule wsgi_module "E:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "E:/python"
# 配置后台路径
WSGIPythonPath E:/lianxipy/myMusic

<VirtualHost *:80>
    DocumentRoot "E:/lianxipy/myMusic/myMusic"
    ServerName local.music.com
    
    # 指定django项目的wsgi配置文件路径
    WSGIScriptAlias / E:/lianxipy/myMusic/myMusic/wsgi.py
    
    <Directory E:/lianxipy/myMusic/myMusic>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
    # 配置静态文件
    Alias /static E:/lianxipy/myMusic/static
    <Directory E:/lianxipy/myMusic/static>
    AllowOverride None
    Options None
    Require all granted
    </Directory>
</VirtualHost>

修改保存后,重启服务器,访问local.music.com。

效果如下:

总结

这就是在window部署django的全过程,中间配置遇到一些问题,不过都解决了目前的配置经过验证成功的配置,有需要的可以借鉴一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1246623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows环境下使用arthas不启动服务替换文件

场景&#xff1a; windows环境&#xff0c;如果现场环境客户正在使用项目&#xff0c;如果要替换项目中的一个class文件&#xff0c;但是又不能重启服务改怎么处理&#xff0c;今天介绍使用arthas中的retransform命令动态替换及使用注意的事项。 环境&#xff1a; windows,arth…

opencv-ORB检测

ORB&#xff08;Oriented FAST and Rotated BRIEF&#xff09;是一种图像特征检测和描述算法&#xff0c;结合了 FAST 关键点检测器和 BRIEF 描述子的优点。ORB 算法具有良好的性能&#xff0c;特别适用于实时应用&#xff0c;如目标追踪、相机定位等。 以下是 ORB 算法的一般…

【Python】生死簿管理系统,估值5毛

生死簿管理系统 代码 """ 生死簿管理系统 """ import os import timefile_name data.txtdef main():while True:main_menu()choice (int)(input("请选择: "))if choice in [0, 1, 2, 3, 4, 5, 6, 7]:if choice 0:answer input(&…

2022年MathorCup高校数学建模挑战赛—大数据竞赛A题58到家家政服务订单分配问题求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛 A题 58到家家政服务订单分配问题 原题再现&#xff1a; “58 到家”是“58 同城”旗下高品质、高效率的上门家政服务平台&#xff0c;平台向用户提供家政保洁、保姆、月嫂、搬家、维修等众多生活领域的服务。在家政保洁场景中…

WPF面试题中级篇

WPF中级篇[17] 15. 描述下WPF对象完整的层次结构? Object&#xff1a;Object 是 .NET Framework 中所有类的根类。它提供了一些基本的方法和属性&#xff0c;如 Equals、GetHashCode 和 ToString。所有其他类都直接或间接地继承自 Object。Dispatcher&#xff1a;Dispatcher…

蒸蛋器上平台销售UL1026检测报告标准

蒸蛋器是一种采用发热盘通电后&#xff0c;使盘内产生高温蒸汽来快速把禽蛋蒸熟的一种生活小家电。蒸蛋器最大的特点就是快速、简单&#xff0c;并充满乐趣。 深圳ISO 17025实验室办理蒸蛋器亚马逊美国站UL报告办理UL1026测试标准。 UL1026标准是关于蒸蛋器的安全性要求&…

CMS指纹识别方式

一、手工识别 1.robots.txt文件 robots.txt文件我们写过爬虫的就知道,这个文件是告诉我们哪些目录是禁止爬取的。但是大部分的时候我们都能通过robots.txt文件来判断出cms的类型 如: 从wp路径可以看出这个是WordPress的cms 这个就比较明显了直接告诉我们是PageAdmin cms 也…

java堆文件排查

技术主题 在之前的开发的一个项目中&#xff0c;因为程序的一个bug&#xff0c;导致一些引用的对象一直没有回收&#xff0c;从而导致堆内存一直在增大&#xff0c;老年代一直在增大&#xff0c;老年代进行堆积&#xff0c;后来的排查思路是通过dump堆的文件&#xff0c;然后对…

易点易动固定资产管理系统:实现固定资产与财务系统的高效对接

在企业的日常运营中&#xff0c;固定资产的管理和财务账目的记录是两项不可或缺的任务。然而&#xff0c;由于传统的管理方式存在数据孤岛和信息不一致等问题&#xff0c;往往导致工作效率低下和管理混乱。为了解决这一问题&#xff0c;易点易动固定资产管理系统应运而生。该系…

每日一题 2824. 统计和小于目标的下标对数目(简单)

简单题&#xff0c;走流程 class Solution:def countPairs(self, nums: List[int], target: int) -> int:ans 0for i in range(len(nums)):for j in range(i 1, len(nums)):if nums[i] nums[j] < target:ans 1return ans

2023年ESG投资研究报告

第一章 ESG投资概况 1.1 定义 ESG投资&#xff0c;亦称负责任投资&#xff0c;是一种融合环境&#xff08;Environment&#xff09;、社会&#xff08;Social&#xff09;和治理&#xff08;Governance&#xff09;考量的投资方法&#xff0c;旨在通过综合这些因素来优化投资…

30㎡新中式大横厅|方寸之间,诉说东方写意生活。福州中宅装饰,福州装修

今天要分享的是一个新中式风格的客厅装修&#xff0c;它的开间是4.5米&#xff0c;进深是6.5米。设计中有许多亮点&#xff0c;让我们一起来看看。 1️⃣ 首先&#xff0c;这个客厅采用了双眼皮无主灯吊顶的设计&#xff0c;让整个空间看起来更加高挑宽敞。吊顶的边缘线条简洁明…

Jmeter基础和概念

JMeter 介绍&#xff1a; 一个非常优秀的开源的性能测试工具。 优点&#xff1a;你用着用着就会发现它的重多优点&#xff0c;当然不足点也会呈现出来。 从性能工具的原理划分&#xff1a; Jmeter工具和其他性能工具在原理上完全一致&#xff0c;工具包含4个部分&#xff1a; …

【广州华锐互动】利用VR体验环保低碳生活能带来哪些教育意义?

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐走进了我们的生活。从游戏娱乐到教育培训&#xff0c;VR技术的应用范围越来越广泛。而在这个追求绿色、环保的时代&#xff0c;VR技术也为我们带来了一种全新的环保低碳生活方式。让我们一起走进…

Go 本地搭建playground

搭建go playground 的步骤 1、安装docker 如果你使用的Ubuntu&#xff0c;docker的安装步骤可以参见这里&#xff0c;这是我之前写的在Ubuntu18.04下安装fabric&#xff0c;其中有docker的安装步骤&#xff0c;这里就不再赘述了。 CentOS下安装docker的&#xff0c;可以参见…

Modbus RTU转Profinet网关连接PLC与变频器通讯在机床上应用案例

背景&#xff1a;以前在机床加工车间里&#xff0c;工人们忙碌地操作着各种机床设备。为了使整个生产过程更加高效、流畅&#xff0c;进行智能化改造。 方案&#xff1a;在机床上&#xff0c;PLC通过Modbus RTU转Profinet网关连接变频器进行通讯&#xff1a;PLC作为整个生产线…

Python用爬虫ip抓取数据为啥还被限制ip?

今天遇到一个奇怪的事情&#xff0c;使用python爬取一个网站&#xff0c;但是频繁出现网络请求错误&#xff0c;之后使用了爬虫ip&#xff0c;一样会显示错误代码。一筹莫展之下&#xff0c;我对现在的IP进行在线测试&#xff0c;发现IP质量很差。后来我总结了以下几点原因。 P…

流量分析-PhishingEmail_WriteUp

一、题目问题 问题1&#xff1a;黑客的email名称 问题2&#xff1a;黑客向几人发送了钓鱼邮件 问题3&#xff1a;黑客传输的木马文件名 问题4&#xff1a;下载并运行了木马文件的人的email名称和ip地址&#xff0c;用“-”连接 问题5&#xff1a;黑客用于反弹shell的主机i…

ubuntu22.04 arrch64版在线安装redis

脚本 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 echo "deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse" >…

氮化镓的晶体学湿式化学蚀刻法

引言 目前&#xff0c;大多数III族氮化物的加工都是通过干法等离子体蚀刻完成的。干法蚀刻有几个缺点&#xff0c;包括产生离子诱导损伤和难以获得激光器所需的光滑蚀刻侧壁。干法蚀刻产生的侧壁典型均方根(rms)粗糙度约为50纳米&#xff0c;虽然已经发现KOH基溶液可以蚀刻AlN…