首页 文章

通过webserver在web2py框架中调用python脚本

提问于
浏览
0

我在服务器上安装了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' . 开始添加导入指令会立即导致生成错误页面 .

任何人都可以建议正确的应用程序语法/逻辑吗?

2 回答

  • 0

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

    vim /etc/mysql/my.cnf
    

    注释掉以下几行 .

    #bind-address           = 127.0.0.1
    #skip-networking
    

    如果配置文件中没有跳过网络线,只需添加它并注释掉它 .

    然后重启mysql服务 .

    service mysql restart
    
  • 0

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

    如果您在尝试导入时声明错误出现在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

相关问题