无法使用 pymssql 烧瓶连接到 ms sql 服务器

Posted

技术标签:

【中文标题】无法使用 pymssql 烧瓶连接到 ms sql 服务器【英文标题】:Can't connect to ms sql server using pymssql flask 【发布时间】:2015-08-14 03:46:05 【问题描述】:

我有一个运行 Apache 的 ubuntu 服务器,我正在尝试连接到同一网络上的一个 sql 服务器。

当我在终端和import pymssqlandthen connect 中运行 python 时,连接没有问题,但是当我将相同的代码放入 init.py 时,它会在 conn=pymssql.connect 处停止运行线。有没有人对此有线索?

__init__.py

from flask import Flask, url_for, render_template
import pymssql

app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello, I love Digital Ocean!"

@app.route("/Reports")
def test(): 
    conn=pymssql.connect(server='<fillinServer>', user='<fillinuser>', password='<fillinpassword>', database='<fillindatabase>')
    print "1"       
    cursor=conn.cursor()
    cursor.execute("SELECT TOP 1 * FROM testquery;")
    print "2"
    row=cursor.fetchone()
    print "3"
    t= row[1]
    return render_template("test.html", test=t) 

if __name__ == "__main__":
    app.run(debug=True)

.WSGI 



 #!/usr/bin/python
import sys
import logging

logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/Reports/")

from ReportApp import app as application
application.secret_key = 'Add your secret key'

【问题讨论】:

日志中没有任何内容。内部错误 500。 其实重启apache后就是一直加载... 你发现问题了吗?我在这里遇到了确切的问题。 【参考方案1】:

尝试直接从烧瓶中运行您的代码。

变化:

if __name__ == "__main__":
    app.run(
    host="0.0.0.0",     #replace this with your ip
    port=int("80"),     #replace with your port
    debug=True)

确保所有包和模块都正确安装在根/虚拟环境中。

sudo python app.py

如果您混合了制表符和 4 个空格,它会提醒您。清理/调试您的脚本并重新运行它。

如果脚本在网络浏览器中运行,则修复这些问题后,它可能正在执行您的命令。自从我连接到繁忙的 BI 服务器后,我的脚本花费了一段时间。

附言添加:

print("done")

所以你知道脚本已经正确执行了。

我可以告诉你它对我有用。

【讨论】:

以上是关于无法使用 pymssql 烧瓶连接到 ms sql 服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 pyodbc/pymssql 和 Robot Framework 连接到 SQL\Express

Pymssql 无法连接到 Amazon Linux 2 上的 Azure SQL Server

tsql 实用程序 (FreeTDS) 可以连接到 SQL Server,但 pymssql 不能

使用 pymssql 连接到 SQL Server 实例

使用 pymssql 2.2 未连接到 SQL 服务器

无法使用 mod_wsgi 从 python wsgi 连接到 pymssql