【问题标题】:What should be my configuration to load pyodbc module on Apache Server to run simple queries mssql server database在 Apache 服务器上加载 pyodbc 模块以运行简单查询 mssql 服务器数据库的配置应该是什么
【发布时间】:2025-12-15 11:05:02
【问题描述】:

因为我是 python 新手。

我需要了解与 Apache HTTP Server 的简单数据库连接。

我只需要在 Apache HTTP Server 中运行以下代码。

import pyodbc 
cnxn = pyodbc.connect("Driver={ODBC Driver 13 for SQL Server};"
                      "Server=DESKTOP-C6;"
                      "Database=demo2017;"
                      "Trusted_Connection=yes;")

cursor = cnxn.cursor()
cursor.execute('SELECT * FROM person')


for row in cursor:
    print('row = %r' % (row,))

cursor.close();
cnxn.close();

我尝试在 python shell 中运行。它执行成功。
但使用 Apache HTTP Server 会导致 500 Internal Server Error

也在 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

那么是否有任何模块或代码应该被导入/修改以与 Apache 一起运行?

【问题讨论】:

    标签: python sql-server python-3.x apache pyodbc


    【解决方案1】:

    您的堆栈缺少几层,如果您想利用 pyodbc,这些都是非常好的学习和使用的想法:

    • Apache(已安装)mod_wsgi(WSGI 是描述 Web 服务器如何与 Web 应用程序通信)
    • 保护您免受非常糟糕的事情发生的框架

    但是,如果您只想将其显示在网页上,则可以将其作为 CGI 程序来实现。这是个坏主意,但又快又脏。

    您需要在任何输出之前添加它(for row 之前):

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

    然后按照以下说明配置 Apache 以运行您的 Python 脚本:https://www.linux.com/blog/configuring-apache2-run-python-scripts

    【讨论】:

    • click here.我遵循了你的方法。你会尝试从两种方法中解决至少一种方法吗
    • 添加上述代码也会导致 500 Internal Server Error 因为 import pyodbc print("Content-Type: text/html") print("") print("" ) print("") print("") 用于光标中的行: print('row = %r' % (row,)) print("") @FlipperPA