Django部署方法
Windows方案: Apache2.4 + Django2.0
网上的方法乱七八糟:
那么接下来:最好的方法,不行吃屎。
当前环境是Django2.0+ python35(64bit)
部署原因:
1,django给你的是个测试服务器,最简单的,性能最低的。
2,比如你的/media/ 下的文件,例如视频。要做到像播放时候快进,如果不用服务器(apache)是不能直接快进.
比如播放某一个视频报错:
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python35\lib\socketserver.py", line 625, in process_request_thread
self.finish_request(request, client_address) ....
.... 3,static文件获取性能极其低下
Django的设置:
1,先把settings.py
DEBUG=False
2,
ALLOWED_HOSTS = ['*']
3,指定STATIC_ROOT MEDIA_ROOT
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "YiVideo"),
] #media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
4,打包static文件到STATIC_ROOT下(非常重要)
原因你的admin资源,还有用的img,html,js文件都统统完整打包,随后让apache服务这些文件.
>> python manage.py collectstatic


5,最头疼的地方apache来了。
<1>
https://www.apachelounge.com/download/vc14/

解压放到C:/Apache24 放到C盘,这个是最简单的方法,因为里面很多默认设置都是C:/Apache24默认目录,简单期间最好就放这个位置。
注意下载vc14版本的
<2>下载服务python的扩展包
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

因为我是py35下载 mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.whl (很重要)
<3> 最关键的一步
1,把 mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.whl 放入C:/Python35/Scripts 文件夹
2,然后pip install mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.whl
3,然后改名mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.zip
4,然后就在当前目录解压
5,在此路径下C:\Python35\Scripts\mod_wsgi-4.5.24+ap24vc14-cp35-cp35m-win_amd64\mod_wsgi\server
6,然后把mod_wsgi.cp35-win_amd64.pyd改名mod_wsgi.so
7,mod_wsgi.so复制到 C:\Apache24\modules
<4>关键性设置C:\Apache24\conf\httpd.conf
找到Listen这句 修改成你的本机固定ip ,把80端口注释了
Listen 192.168.10.198:8081
#Listen 80

找到这些加载模块这些语句注释区域,写入LoadModule wsgi_module modules/mod_wsgi.so

C:\Apache24\conf\httpd.conf文件的最底下加入这些语句:
看到static已经是使用的python manage.py collectstatic 命令打包后的位置.
<IfModule wsgi_module>
Alias /static/ D:/plugin_dev/Python/DjangoDay/ContentManager/static/
<Directory "D:/plugin_dev/Python/DjangoDay/ContentManager/static">
Require all granted
</Directory> Alias /media/ "D:/plugin_dev/Python/DjangoDay/ContentManager/media/" <Directory "D:/plugin_dev/Python/DjangoDay/ContentManager/media/">
Allow from all #must give , or display 失败-已被禁止
Require all granted
</Directory> WSGIScriptAlias / D:/plugin_dev/Python/DjangoDay/ContentManager/ContentManager/wsgi.py
WSGIPythonPath D:/plugin_dev/Python/DjangoDay/ContentManager/
<Directory D:/plugin_dev/Python/DjangoDay/ContentManager/>
<Files wsgi.py>
Order deny,allow
Allow from all
Require all granted
</Files>
</Directory>
</IfModule>
<5>cmd启动C:\Apache24\bin\httpd.exe
<6>浏览器访问:192.168.10.198:8081 ,我曹,一切完美。

media的文件随便尼玛快进快放

Django部署方法的更多相关文章
- django 部署到 apache
安装完django之后,每次都需要通过命令来启动启动开发服务器.虽然调试和测试方便,但只能在本地运行,并且不能承受许多用户同时使用的负载.所以需要将Django部署到生产级的服务器,这里选择apach ...
- Django部署到Apache Web Server
Windows环境下,将Django部署到Apache Web Server 在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. ...
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
- hadoop入门(3)——hadoop2.0理论基础:安装部署方法
一.hadoop2.0安装部署流程 1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费) 2.使用RPM包安装部署:Apache ...
- django部署
部署教程 阿里云django部署教程 注意备份Apache2的siteconf文件 细节 环境迁移 如果是修改了注意些requirement文件
- Django 部署 uwsgi + nginx + supervisor
Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...
- IIS:开启GZIP压缩效率对比及部署方法
HTTP压缩 HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法.HTTP压缩采用通用的压缩算法如GZIP等压缩HTML.JavaScript或CSS文件.压缩的最大好处就是降低了网络传输的 ...
- Hadoop 学习笔记 (九) hadoop2.2.0 生产环境部署 HDFS HA部署方法
step1:将安装包hadoop-2.2.0.tar.gz存放到某一个目录下,并解压 step2:修改解压后的目录中的文件夹/etc/hadoop下的xml配置文件(如果文件不存在,则自己创建) 包括 ...
- elasticsearch+kibana+metricbeat安装部署方法
elasticsearch+kibana+metricbeat安装部署方法 本文是elasticsearch + kibana + metricbeat,没有涉及到logstash部分.通过beat收 ...
随机推荐
- 百度杯”CTF比赛 九月场 123
进去后让登录,先看源码有提示 进到user.php 后发现是空的,看了wp才知道,有bak 下载下来直接爆破 但是那个1990是蛮骚的 直接进去登录 登录成功后是空的,走fd看看是怎么过 的 改包然后 ...
- 使用serialize时多数据传递
class CartList(APIView): #定义编辑方法 def post(self,request): username = request.POST.get('username') # p ...
- 如何卸载VS 2017之前版本比如VS 2013、VS2015、 VS vNext?
前言 大学专业为软件工程,进入大学之后才知道这个专业需要用到笔记本,我的笔记本配置为I3,内存4个G,已经有大几年了,中间坏了修了一次一直用到现在,这个笔记本还是我哥打工过年回来身上仅有的三四千块钱所 ...
- Django rest framework(6)----序列化(2)
为什么要序列化 django 查询数据库返回的类型是 queryset 类型 而我们和前端通信使用的大多数是json类型,这个时候我们需要把 queryset的数据类型转换成python的数据类型然 ...
- DEVOPS 运维开发系列
DEVOPS 运维开发系列四:ITIL事态管理流程.事态监控系统设计以及基于Devops的效率提升实践 - watermelonbig的专栏 - CSDN博客https://blog.csdn.net ...
- Shell命令-文件及目录操作之ls、cd
文件及目录操作 - ls.cd 1.ls:列出目录的内容及其内容属性信息 ls命令的功能说明 ls命令用于列出目录的内容及其内容属性信息. ls命令的语法格式 ls [OPTION]... [FILE ...
- ;。【】DAY14、递归,匿名函数
一.三元运算符 三元运算符也称三目运算符,就是if .....else.....语法糖 前提:if 和 else 只有一条语句 例:a = 20 b = 30 res = a if a > b ...
- springboot +thymeleaf+myql 记录
thymeleaf官方文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.pdf demo案例:https://github. ...
- 原生JS的Ajax技术
1.同步和异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡 ...
- PHP——判断是否为加密协议https
前言 就是一个封装的方法,用来判断域名前面是加http还是https 代码 function is_ssl() { if(isset($_SERVER['HTTPS']) && ('1 ...