如何使用python作为服务器端语言?

Bar*_*Cat 12 python xampp web

我正在尝试使用Python而不是PHP(仅用于教育目的).我在XAMPP上测试我的网页,我已经在配置中添加了python和cgi.我设法使用此代码制作一个非常基本的网页

#!/Python/python

print("Content-Type: text/plain;charset=utf-8")
print()

print("Hello World!")
Run Code Online (Sandbox Code Playgroud)

虽然,就是这样.我找不到任何关于我如何使用Python 3+提供网页的信息.大部分信息都已过时或存在争议.是否有关于如何使用Python作为服务器端语言的最新指南?

fer*_*ezr 6

Python 可以是一种很棒的端服务器语言,但不像 PHP 那样。强烈建议使用框架,例如flask。

在 PHP 中,您有不同的 .php 文件(如index.php)来执行基本路由,但在 python(使用 Flask 和其他一些框架)中,您必须在函数中定义 URI 路径。

你可以在这里看到一个例子,来自它的网页Flask

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找 API REST 框架,请查看Falcon

  • Flask 不是网络服务器。Web 服务器类似于 Nginx 或 Apache。 (3认同)

Ber*_*ard 6

出于您提到的目的,此当前设置应该可以工作(至少在一段时间内):

阿帕奇设置

httpd.conf 中的更改

  1. 拒绝更改为授予

<Directory /> AllowOverride none Require all granted </Directory>

  1. 查找 Options +Indexes +FollowSynsLinks........ 并将 + ExecCGI添加到该行。

Options +Indexes +FollowSymLinks +Multiviews +ExecCGI

  1. 查找 AddHandler cgi-script .cgi 并将.py添加到它

AddHandler cgi-script .cgi .py

httpd-vhosts.conf 中的更改

<Directory "{Your directory}"/> Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI AllowOverride All Require all granted </Directory>


例子.py

第一行 Python 代码 #!C:\{somepath}\python

您需要为第一行和注释的代码行找到正确的路径和条形约定(/、\、//...)。在你的例子中是:#!/Python/python

运行这个 script.py 来找到它

import sys print(sys.executable)

将输出粘贴到旁边#!,您应该可以将 test-code.py 测试到您的 **www \ 文件夹如果碰巧它不起作用,请尝试使用不同栏的 python、python.exe 的不同组合#!行旁边的诸如“/”“//”“\”之类的约定。

要显示 HTML 文件,请添加print ('Content-type: text/html\n\n')到您的 .py 代码中。**

完整的代码
注释˚Fhtml_content = f'''<html>...

#!C:\Program Files (x86)\Python37-32\python
#  -*- coding: utf-8 -*-
import cgi

stringvar = 'Hello variable'
intvar = 30
html_content = f'''<html>
<head><title>My first Python CGI app</title></head>
<body>
<p>Hello, 'world'!</p>
<p>This is a stringvar = {stringvar} </p>
<p>This is intvar = {intvar} </p>
</body>
</html>'''

print ('Content-type: text/html\n\n')
print (html_content)
Run Code Online (Sandbox Code Playgroud)

“大部分信息已经过时或有争议”

完全同意。我希望这有效!


Bla*_*nen 5

Nicarus说的是有效的消化,但我也推荐其他一些东西.

首先,对于您的开发环境,您不需要使用xampp或wamp或类似的东西,python拥有它自己的HTTP服务器,虽然不是最简单的使用,我将在下面解释的库和框架使用它.

因此,大多数python Web开发人员不使用原始python来使用python作为Web的编程语言.大多数开发人员使用某种框架或库.这些框架的范围从像Django这样的沉重和固执的,到像Flask这样的小型框架.大多数(如果不是全部)这些框架提供了一种简单快捷的方法来设置开发HTTP服务器进行测试.

我建议首先查找Django,因为它有最全面的教程和指南,可以帮助您入门.然后,你更熟悉Python语言,你可以相当容易地使用其他东西,而不是手持.

有了Django,你可以从这里开始