我在服务器上安装了NGINX UWSGI和WEB2PY。通过访问数据库和打印表中的行,只执行一个功能的Web2py应用程序。
def fetch():
import psycopg2
conn = psycopg2.connect(database="postgres",
user="postgres",
password="qwerty",
host="127.0.0.1")
cur = conn.cursor()
cur.execute("SELECT id, name from TEST")
rows = cur.fetchall()
conn.close()
return rows当在本地调用该函数时,将返回表内容。但是当我试图从远程机器调用函数时,我得到了一个内部错误500。
更有趣的是,当函数看起来像这样的时候:
def hello():
return 'hello'返回字符串'hello‘。开始添加import指令会立即导致生成错误页面。
谁能建议正确的应用程序语法/逻辑?
发布于 2016-07-06 00:34:43
我的猜测是您的MySQL服务不允许远程访问。你能检查一下你的MySQL配置吗?
vim /etc/mysql/my.cnf注释掉以下行。
#bind-address = 127.0.0.1
#skip-networking如果您的配置文件中没有跳过联网行,只需添加它并将其注释掉。
然后重新启动mysql服务。
service mysql restart发布于 2016-07-07 17:21:36
请原谅这个愚蠢的问题,但是你检查过这个模块在你的服务器上是否可用吗?
当您说只要尝试导入就会在hello函数中出现错误时,它就是同一个指令import psycopg2
尝试一下:假设fetch()是在controllers/default.py上定义的,打开文件夹views/default并创建一个名为fetch.html的新文件,将此文件粘贴到其中
{{extend 'layout.html'}}
{{=rows}}如果您愿意,fetch.html可以是一个视图或模板
修改fetch()以返回包含要打印的视图行的字典
return dict(rows=rows)这是非常基本的技巧,你可以在-> http://www.web2py.com/books/default/chapter/29/03/overview#Postbacks一书中找到更多关于基本步骤的信息
https://stackoverflow.com/questions/38208242
复制相似问题