python框架django项目部署相关知识详解

yipeiwu_com6年前Python基础

这篇文章主要介绍了python框架django项目部署相关知识详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一:项目部署的框架

  nginx和uWSGI在生产服务器上进行的部署

二:什么是nginx?

  nginx是一个web服务器。

  什么是web服务器?

  web服务器则主要是让客户可以通过浏览器进行访问,处理HTML文件,css文件,js文件,图片等资源。web服务器一般要处理静态文件。对接服务器。

  什么是静态文件?

  css,js,html,图片等不需要后台进行逻辑处理的文件。

  特点:一般将静态文件放在web服务器里面。如nginx服务器中,做到动态静态分离的处理。

  什么是动态文件?

  除了静态文件之外,一般都是动态文件。

  特点:动态文件一般web服务器不直接进行处理,例如ngnix会将动态资源转发给应用服务器(反向代理),让应用服务器进行处理,并将处理结果,返给nginx,nginx在将结果返回浏览器。

  什么是应用服务器?

  应用服务器直接面对的是我们写的程序。

  特点:对接程序函数,处理业务逻辑。

  uWSGI是一个应用服务器。

三:uWSGI和nginx之间通信的简单过程。

uWSGI接到请求后,将请求包进行处理,处理成wsgi(一种通信协议)可以接受的格式,并发送给wsgi,wsgi根据请求,调用应用程序中的某个文件中的某个函数,进行处理,处理完成后,将返回值,再次交给wsgi,wsgi将返回值进行打包,打包成uWSGI接受的格式,然后uWSGI将结果转发给nginx,ngnix最终将返回值给浏览器。

四:为什么分成静态服务器和应用服务器进行部署?

  实现了动和静分离。提高访问静态文件的速度。降低对后台的访问。提高了网站的吞吐量。

  实现动静分离的方式:

  1. 页面静态化,页面静态化后的页面是放在哪里,硬盘还是缓存中。

  2. 静态文件例如:图片还有html,css文件时放在web服务器上,还是web服务器的缓存里面?

五:setting.py中的debug=True

我们希望本机访问的时候,开启调试模式,错误了给错误信息的详细页面,其他机器访问的时候,关闭调试模式,错误了给他们404页面。  

socket.gethostname() 返回的是主机名

# setting.py中改变DEBUG=True
import socket 
if socket.gethostname() == "xxx":
  DEBUG =True
else:
  DEBUG = False

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 调用HBase的简单实例

新来的一个工程师不懂HBase,java不熟,python还行,我建议他那可以考虑用HBase的thrift调用,完成目前的工作。 首先,安装thrift 下载thrift,这里,我用的...

对比Python中__getattr__和 __getattribute__获取属性的用法

相信大家觉得大多数时候我们并不太需要关注getattribute和getattr的一些细节(至少我自己吧:)), 一般情况下消费我们自定义的类的时候,我们对类的结构都了解,不会刻意偏离,...

Python整数与Numpy数据溢出问题解决

Python整数与Numpy数据溢出问题解决

某位 A 同学发了我一张截图,问为何结果中出现了负数? 看了图,我第一感觉就是数据溢出了。数据超出能表示的最大值,就会出现奇奇怪怪的结果。 然后,他继续发了张图,内容是 print(1...

python代码制作configure文件示例

在lua中,一直用lua作为config文件,或承载数据的文件 - 好处是lua本身就很好阅读,然后无需额外写解析的代码,还支持在configure文件中读环境变量,条件判断等。 在lu...

Python如何使用k-means方法将列表中相似的句子归类

Python如何使用k-means方法将列表中相似的句子归类

前言 由于今年暑假在学习一些自然语言处理的东西,发现网上对k-means的讲解不是很清楚,网上大多数代码只是将聚类结果以图片的形式呈现,而不是将聚类的结果表示出来,于是我将老师给的代码和...