在 Apache 服务器中运行普通学校的旧 python 文件。我是这样编码的
索引.html
<form action="/cgi-bin/hello_get.py" method="post">
First Name: <input type="text" name="first_name"> <br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
你好_get.py
#!C:/Users/Desktop/AppData/Local/Programs/Python/Python36-32/python
# Import modules for CGI handling
import cgi, cgitb
import pyodbc
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
first_name = form.getvalue('first_name')
last_name = form.getvalue('last_name')
print("Content-Type:text/html\r\n\r\n")
print("<html>")
print("<head>")
print("<title>Hello - Second CGI Program</title>")
print("</head>")
print("<body>")
print("<h2>Hello %s %s</h2>" % (first_name, last_name))
print("</body>")
print("</html>")
我尝试在 python shell 中运行。效果很好
同样在 httpd.conf 文件中:
LoadModule pyodbc_module "c:/users/desktop/appdata/local/programs/python/python36-32/lib/site-packages/pyodbc.cp36-win32.pyd"
结果
httpd: Syntax error on line 571 of C:/Apache24/conf/httpd.conf: Can't
locate API module structure `pyodbc_module' in file
C:/Users/Desktop/AppData/Local/Programs/Python/Python36-32/Lib/site-packages/pyodbc.cp36-win32.pyd:
No error
那么我需要怎样做导入pyodbc在 .py 文件中以及如何加载pyodbc模块在 Apache HTTP 服务器中?
正如 @FlipperPA 所说,在此链接中加载 mod_wsgi 模块点击这里
C:\>pip install mod_wsgi-4.5.22+ap24vc9-cp27-cp27m-win32.whl
C:\Windows\system32>pip install htmlpy
Collecting htmlpy
Downloading htmlPy-2.0.3.tar.gz
Installing collected packages: htmlpy
Running setup.py install for htmlpy ... done
Successfully installed htmlpy-2.0.3
同样在 httpd.conf 文件中:
LoadFile "c:/users/desktop/appdata/local/programs/python/python36-32/python36.dll"
LoadModule wsgi_module "c:/users/desktop/appdata/local/programs/python/python36-32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd"
LoadModule pyodbc_module "c:/users/desktop/appdata/local/programs/python/python36-32/lib/site-packages/pyodbc.cp36-win32.pyd"
WSGIPythonHome "c:/users/vitriv-desktop/appdata/local/programs/python/python36-32"
这是 test_wsgi.py
#!C:/Users/AppData/Local/Programs/Python/Python36-32/python
import os
import sys
from wsgiref.simple_server import make_server
def hello_world_app(environ, start_response):
status = '200 OK' # HTTP Status
headers = [('Content-type', 'text/plain')] # HTTP Headers
start_response(status, headers)
pyver = '.'.join(map(str, tuple(sys.version_info)[:3]))
return ["Hello World (from Python %s WSGI)" % pyver]
application = hello_world_app
if __name__ == '__main__':
port = int(os.getenv('PORT', '8000'))
srv = make_server('127.0.0.2', port, application)
print("Serving...")
srv.serve_forever()
Output:
Hello World(来自 Python 2.7.14 WSGI)
但我现在不知道如何使用Web服务器网关接口?
请帮我解决上述两种方法中的至少一种方法