gpt4 book ai didi

python - 用 Python 编写的 Web 应用程序是如何部署的?

转载 作者:行者123 更新时间:2023-11-28 17:52:59 26 4
gpt4 key购买 nike

我是一名前 PHP 开发人员,我正在努力克服我可以编写 nginx 配置脚本、创建目录、启动 nginx + PHP-FPM、上传我的代码并让它运行的心态。我想开始使用 Python 来感受它并开始创建 Web 应用程序,但对于如何让它全部工作我有点迷茫。

虽然有些人的建议总是使用像 Django 这样的框架,但我想看看这一切是如何自下而上地工作的。

我看过 Python Web 服务器的比较,看来 gevent 正是我要找的。但它们是如何组合在一起的呢?我是否仍然需要 nginx(静态内容除外)作为反向代理,还是我需要做一些不同的事情?我正面临“初学者失明”,我正在努力了解它们如何组合在一起。

最佳答案

我自己是一名初学者 Python 开发人员,所以我也有同样的问题。也许更高级的用户可以填写详细信息。这是我到目前为止所做的:

开始的最简单方法是简单地制作一个可执行的 python 脚本 (.py) 并将其放入您的 cgi-bin 中。然后您可以通过 yourhost.com/cgi-bin/your_script.py 访问它。操作简单,易于用于表单处理等。

有些服务器会要求您重新启动服务器,然后才能“看到”新的 .py 脚本,这对于快速开发来说可能非常烦人。这就是为什么很多人使用 WSGI 等中间件的原因之一。以下是我如何修改我的 Apache 配置以启用 WSGI:

LoadModule wsgi_module libexec/apache2/mod_wsgi.so

<VirtualHost *:80>

WSGIScriptAlias /myapp /Library/WebServer/wsgi-scripts/views.wsgi

<Directory /Library/WebServer/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

views.wsgi 只是一个 Python 脚本。现在,如果我转到 localhost/myapp/anything,它将重定向到 views.wsgi。最好不要将此文件放在您的根目录中,否则您将无法引用静态文件。

一个简单的应用可能看起来像这样:

def application(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']

environ 包含有关用户试图到达的路径的信息,因此您可以设置一个 URL 列表,并根据请求的 URL 告诉您的程序调用哪个函数。像这样:

 path      = environ.get('PATH_INFO','')
if path.startswith('/helloworld'):
# call your function that returns HTML code

我对框架(如 Django)的了解还不多,但我认为其中的一个优点是它们可以使用从脚本传递的任何变量轻松填充 HTML 模板。 Django 的模板引擎允许包含变量以及与 HTML 混合的逻辑(if、for 等)。调用该函数时,无论它返回什么,都会发送给客户端。

我对这一切还是很陌生,所以如果这里有任何错误,请纠正我......

关于python - 用 Python 编写的 Web 应用程序是如何部署的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com