Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安装Python和Django-在哪里?_Python_Django_Nginx - Fatal编程技术网

安装Python和Django-在哪里?

安装Python和Django-在哪里?,python,django,nginx,Python,Django,Nginx,我已经阅读了大量关于如何安装的文章,并观看了关于这件事的一些You Tube。它们都很棒,但并没有一个能告诉我Python/Django是如何工作的 第一个问题是:我应该在哪里安装什么?在我的客户机Mac或服务器Debian上?或者两者都有 第二个问题:什么是Django?服务器还是应用程序?单词framework没有告诉我它是如何工作的 第三个问题:许多说明都假设您想要使用Apache。如果我想使用nginx呢?可能吗 我的猜测是Apache/nginx在启动时加载Python语言?Djang

我已经阅读了大量关于如何安装的文章,并观看了关于这件事的一些You Tube。它们都很棒,但并没有一个能告诉我Python/Django是如何工作的

第一个问题是:我应该在哪里安装什么?在我的客户机Mac或服务器Debian上?或者两者都有

第二个问题:什么是Django?服务器还是应用程序?单词framework没有告诉我它是如何工作的

第三个问题:许多说明都假设您想要使用Apache。如果我想使用nginx呢?可能吗

我的猜测是Apache/nginx在启动时加载Python语言?Django以某种方式使用它


如果以前有人问过这个愚蠢的问题,请道歉,但我在任何地方都找不到任何线索。

服务器上应该安装Python、django和apache/nginx

在创建站点时,python和django(理想情况下也是可选的)应该安装在开发计算机上。这将允许您在开发时对其进行测试。在客户机/开发机器上不需要apache/nginx,因为django可以为此运行自己的本地测试服务器

python和django都不需要安装在客户端计算机上

Django允许您构建网站的服务器端后端。HTML/Javascript/CSS将允许您开发用户访问站点时所看到和交互的前端,但是django在服务器端处理所有事情。因此,这里需要处理大量的计算,连接数据库、存储/检索数据库信息、在网站的不同页面之间进行路由等等

Python实际上可以处理所有这些事情,所以从技术上讲,您不需要django,但它存在的原因是提供一个统一的框架,或者提供一种更容易、紧凑和高效地完成上述所有工作的方法

是的,您可以将django与nginx一起使用。类似这样的方法会奏效:

在高层次上回答您的最后一个问题:您的服务器安装了python。django实例是在您指定的特定端口上创建和运行的,该端口使用python安装。最终,这使服务器/本地计算机能够访问您的django应用程序/网站。但在现实世界中,你希望其他用户也能访问你的应用程序/网站。这就是apache或nginx等web服务器的用武之地。它们为外部世界提供了一种访问django实例的方法

您还需要一个称为wsgi服务器的东西。我在上面提供的链接使用uwsgi,而gunicorn是它的替代品。这里提供的另一个答案让您很好地了解了它的作用,但它实际上位于django和nginx/apache/yourWebServer之间,并在两者之间传递信息

那么您需要在服务器上安装什么:python、django、wsgi服务器uwsgi、gunicorn、web服务器nginx、apache。 客户不需要任何这些东西
开发机器只需要运行自己的测试服务器的python和django就可以逐一回答您的问题:

1) Where do I install what
您应该有一台服务器机器,您可以从亚马逊、DigitalOcean、e.t.c.等服务提供商处获得。服务器机器中必须安装Apache/Nginx、App server Gunicorn和Django以及运行站点所需的db插件或其他包

客户端只需要一个浏览器,就可以通过URL访问应用程序

2) Is Django an app or a server
两者都不是。Django是一个Web框架,它有助于更轻松地创建高效、健壮的Web应用程序。作为框架的一部分,它还提供了一个测试服务器,我们通过以下命令运行该服务器:

python manage.py runserver
在生产环境中运行应用程序时,无法使用此测试服务器,原因如下:

1如果出现任何错误,则客户端浏览器中会显示错误的完整跟踪,从而公开关键数据

2测试服务器有一个记录所有接收到的请求以及与数据库e.t.c的所有通信的日志,这可能会在生产环境中浪费太多空间

3) Can I use Nginx:
是的,你绝对可以使用Nginx

并简要介绍Nginx和Django的沟通方式:

1 Nginx称为Web服务器。默认情况下,此web服务器侦听端口80的HTTP请求。 假设我们向myexample.com提出请求

2我们在以下文件夹中为这台计算机承载的每个域提供了一个配置文件:

/etc/nginx/sites-enabled/
在这里,我们指定当请求针对特定域时服务器应该查找的位置。现在,如果站点只包含普通的HTML、CSs页面,我们将指定指向该域的索引文件的路径。由于我们的应用程序是django应用程序,因此必须指定应用程序服务器运行的端口

3 Gunicorn是应用服务器,根据Nginx的请求提供django模板。根据配置,Nginx将请求转发到Gunicorn运行的端口

4 Gunicorn通过URL查找调用特定视图,将视图获取到 执行并返回视图返回给Nginx的任何内容

5 Nginx将Gunicorn返回的数据返回给客户端


希望这有帮助

那应用服务器呢?只是在上面添加了一个答案并添加了一个简短的解释。您确实需要一个wsgi服务器,无论是uwsgi、gunicorn还是其他服务器,都取决于您和posgresql?所以我需要至少3台服务器运行。Nginx、Gunicorn和Posgresql?如果提到Apache,你真的应该提到mod_wsgi。它存在于uWSGI和gunicorn之前,仍然被广泛认为是最稳定的WSGI部署方法。谢谢!很好的解释。@sibert Gunicorn只与django沟通。Django与您配置的数据库通信,Django是一个正在运行的应用程序或服务器还是什么?一堆脚本?为了与Postgresql通信?@sibert Django是一个框架。django项目由一个或多个应用程序组成,其中包含项目的核心业务逻辑,所有通信都发生在该逻辑中。用外行的话说,你是对的。这只是一堆与dbI通信的脚本,我真的想接受这两个答案,它们既有用又有用。但我不能两者都接受,所以我的决定是随机的。