首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过over服务器在web2py框架中调用python脚本

通过over服务器在web2py框架中调用python脚本
EN

Stack Overflow用户
提问于 2016-07-06 00:21:28
回答 2查看 181关注 0票数 0

我在服务器上安装了NGINX UWSGI和WEB2PY。通过访问数据库和打印表中的行,只执行一个功能的Web2py应用程序。

代码语言:javascript
复制
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。

更有趣的是,当函数看起来像这样的时候:

代码语言:javascript
复制
def hello():
    return 'hello'

返回字符串'hello‘。开始添加import指令会立即导致生成错误页面。

谁能建议正确的应用程序语法/逻辑?

EN

回答 2

Stack Overflow用户

发布于 2016-07-06 00:34:43

我的猜测是您的MySQL服务不允许远程访问。你能检查一下你的MySQL配置吗?

代码语言:javascript
复制
vim /etc/mysql/my.cnf

注释掉以下行。

代码语言:javascript
复制
#bind-address           = 127.0.0.1
#skip-networking

如果您的配置文件中没有跳过联网行,只需添加它并将其注释掉。

然后重新启动mysql服务。

代码语言:javascript
复制
service mysql restart
票数 0
EN

Stack Overflow用户

发布于 2016-07-07 17:21:36

请原谅这个愚蠢的问题,但是你检查过这个模块在你的服务器上是否可用吗?

当您说只要尝试导入就会在hello函数中出现错误时,它就是同一个指令import psycopg2

尝试一下:假设fetch()是在controllers/default.py上定义的,打开文件夹views/default并创建一个名为fetch.html的新文件,将此文件粘贴到其中

代码语言:javascript
复制
{{extend 'layout.html'}}
{{=rows}}

如果您愿意,fetch.html可以是一个视图或模板

修改fetch()以返回包含要打印的视图行的字典

代码语言:javascript
复制
return dict(rows=rows)

这是非常基本的技巧,你可以在-> http://www.web2py.com/books/default/chapter/29/03/overview#Postbacks一书中找到更多关于基本步骤的信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38208242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档