Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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 通过Web浏览器将pyodbc与MSSQL服务器集成的初始化配置问题_Python_Sql Server_Github_Mod Wsgi_Pyodbc - Fatal编程技术网

Python 通过Web浏览器将pyodbc与MSSQL服务器集成的初始化配置问题

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个内部服务器错误。但其

通过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重新启动


问题似乎是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>