Python 通过Web浏览器将pyodbc与MSSQL服务器集成的初始化配置问题
通过Web浏览器将pyodbc与MSSQL服务器集成的初始化配置问题 因为我是Python Web编程新手 我需要通过单击submit按钮进行编码,该按钮应通过localhost将person数据库中的所有表检索到Web浏览器 使用localhost运行的服务器配置应该是什么: Apache HTTP服务器或 WSGI模块或 请指定任何其他模块/服务器 检查以下我已配置的链接: 我曾尝试使用ApacheHTTP服务器,只使用一个命令import pyodbc,结果导致500个内部服务器错误。但其余的东西在POST和Python Shell中都运行良好 我是这样编码的。请让任何人通过localhost使用Web服务器,让我知道我们需要使用以下代码添加/修改什么 index.html 重新启动服务器会导致httpd-k重新启动Python 通过Web浏览器将pyodbc与MSSQL服务器集成的初始化配置问题,python,sql-server,github,mod-wsgi,pyodbc,Python,Sql Server,Github,Mod Wsgi,Pyodbc,通过Web浏览器将pyodbc与MSSQL服务器集成的初始化配置问题 因为我是Python Web编程新手 我需要通过单击submit按钮进行编码,该按钮应通过localhost将person数据库中的所有表检索到Web浏览器 使用localhost运行的服务器配置应该是什么: Apache HTTP服务器或 WSGI模块或 请指定任何其他模块/服务器 检查以下我已配置的链接: 我曾尝试使用ApacheHTTP服务器,只使用一个命令import pyodbc,结果导致500个内部服务器错误。但其
问题似乎是Apache找不到Python路径。别忘了,Apache在您的系统上以不同的用户身份运行。如果Apache以名为www用户的用户身份运行,则www用户需要能够导入pyodbc 如果您想坚持使用CGI而不是使用完整的WSGI应用程序,这里有两种可能的解决方案 首先,在Python脚本中,您可以在任何导入语句之前执行此操作:
sys.path.insert(0, 'c:\path\to\python-site-packages\')
或者,在Apache配置中:
SetEnv PYTHONPATH "c:\path\to\python-site-packages\"
祝你好运 已解决Apache 500中的内部错误。因为导入了pyodbc。
在pythonshell中,我能够成功连接并在pythonshell和mssqlserver2017中检索结果。
前副驾驶
Index.html
您可以将Apache日志中的错误包含在500错误中吗?这将告诉我们它不能做什么。我猜如果CGI设置正确的话,导入pyodbc是一个问题。此外,在Python中cursor.close之后不需要分号;和cnxn.close;:谢谢你的关心@FlipperPA这是真的,它的重要性是:没有名为pyodbc的模块。正确地提到了路径。pip后安装pyodbc。文件自动创建。问题仍然没有解决。尝试了上述两种方法。它不起作用,我试着用pyodbc,它起作用了。但是有一个连接问题。你能解决这个问题吗@FlipperPA感谢您的建议同时查看此链接
[cgi:error] [pid 9344:tid 1264] [client ::1:52332] AH01215:
End of script output before headers: hello_get.py, referer: http://localhost/index.html
Traceback (most recent call last):\r: C:/Apache24/htdocs/hello_get.py, referer: http://localhost/index.html
File "C:\\Apache24\\htdocs\\hello_get.py", line 6, in <module>\r: C:/Apache24/htdocs/hello_get.py, referer: http://localhost/index.html
import pyodbc\r: C:/Apache24/htdocs/hello_get.py, referer: http://localhost/index.html
ImportError: No module named pyodbc\r: C:/Apache24/htdocs/hello_get.py, referer: http://localhost/index.html
LoadModule pyodbc_module
"c:/users/desktop/appdata/local/programs/python/python36-32/lib/site-packages/pyodbc.cp36-win32.pyd"
httpd: Syntax error on line 576 of C:/Apache24/conf/httpd.conf: Can't locate API module structure `pyodbc_module' in file C:/Users/Vitriv-Desktop/AppData/Local/Programs/Python/Python36-32/Lib/site-packages/pyodbc.cp36-win32.pyd: No error
sys.path.insert(0, 'c:\path\to\python-site-packages\')
SetEnv PYTHONPATH "c:\path\to\python-site-packages\"
import sys
sys.path.insert(0, 'C:/Users/Vitriv-Desktop/AppData/Local/Programs/Python/Python36-32/Lib/site-packages')
import pypyodbc
import cgi, cgitb
# 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))
cnxn = pypyodbc.connect(driver='{ODBC Driver 13 for SQL Server}', server='DESKTOP-C6RS3DO', database='demo2016', Trusted_Connection='Yes')
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM person')
for row in cursor:
print('row = %r' % (row,))
print("<h2>Hello %s %s</h2>" % (first_name, last_name))
cursor.close()
cnxn.close()
print("</body>")
print("</html>")
<form action="ex.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>