2016-07-05 7 views
0

私はNGINX UWSGIとWEB2PYをサーバーにインストールしました。 Web2pyアプリケーションは、データベースにアクセスして表に行を印刷することで、1つの機能だけを実行します。ウェブサーバー上のweb2pyフレームワークでpythonスクリプトを呼び出す

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' 

文字列「こんにちは」を返します。追加を開始すると、直ちにインポート・ディレクティブによってエラー・ページが生成されます。

適切なアプリケーション構文/ロジックをお勧めしますか?

答えて

0

あなたのMySQLサービスはリモートアクセスを許可していないと思います。 MySQLの設定を確認できますか?

vim /etc/mysql/my.cnf 

以下の行をコメントアウトしてください。

#bind-address   = 127.0.0.1 
#skip-networking 

コンフィギュレーションファイルにスキップネットワーキング行がない場合は、追加してコメントアウトしてください。

そして、mysqlサービスを再起動してください。

service mysql restart 
+0

。アプリケーションにはuwsgiを介してアクセスします。私はweb2pyのフレームワークロジックを理解していますが、http:// server/app_dir/src_file/funcにアクセスしてアプリケーションを呼び出しています。 「hello」を返すだけであれば、私にとってはうまくいきます。そして、リモートマシン上のhttplibライブラリからgetresponse()メソッドを使って文字列を取得できました。 整数や配列を返す方法を探していると思いますか? – user176289

+0

これは、データベースへのリモートアクセスをローカルで呼び出す関数です。ではない? – user176289

0

愚かな質問は許してもらえますが、モジュールがサーバーで使用できるかどうかを確認しましたか?

インポートしようとするとすぐにエラーがあなたのhello関数に表示されると、同じ指示文import psycopg2が表示されますか?

これを試してみてください:それはcontrollers/default.py 開いているフォルダviews/defaultに定義されています) (つまりフェッチと仮定して、新しいファイルを作成するには、

{{extend 'layout.html'}} 
{{=rows}} 

ます場合fetch.htmlビューまたはテンプレートである内側にこれを貼り付けるfetch.html と呼ばれます

を印刷するビューの列と辞書を返すために)

変更は(フェッチ好みます

これはタフな非常に基本的である、あなたが本の中で基本的な手順についての詳細な情報を見つけることができます - >私は、PostgreSQLを使用していhttp://www.web2py.com/books/default/chapter/29/03/overview#Postbacks

+0

はい。しかし、サーバー上のDBにアクセスしようとしているのであればOKですが、Web経由ではありません。 私はweb2pyのアプリケーションロジックを理解していないと思って、なぜデータを正しく返すことができないのでしょうか。呼び出し規約で何か。 – user176289

+0

Web2pyのロジックは単純ですが、localhostから関数を呼び出すと汎用ビューが返されます。実際のサーバー上にある場合は、独自のビューを用意する必要があります。 欠落しているビューでエラー500が返されるかどうかは不明です。これらの行を見る機会はありますか? – dido

関連する問題