簡體   English   中英

pythonanywhere上的麻煩主機燒瓶應用程序

[英]Trouble Hosting flask app on pythonanywhere

我是pythonanywhere的首次用戶

我首先通過bash控制台從github對我的代碼進行git克隆。 我沒有使用虛擬環境。 在我的app.py文件中調用了我的WSGI應用程序。 另外,我的代碼使用sqlalchemy與我的數據庫進行交互。

基本上,flask應用程序就像一個自定義api,它為GET和POST請求返回JSON,而我在查看JSON輸出時遇到了麻煩。 我不確定自己到底在做什么錯或遺漏。

app.py文件中的代碼:

#!flask/bin/python
from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Base, Quote
from flask import request
from flask import abort
import json

#connect to database

engine = create_engine("sqlite:///quotes.db")

Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()

app = Flask(__name__)

@app.route("/trumptext/api/quotes", methods=["GET"])
def get_quotes():
    quoteList = session.query(Quote).all()
    result = []
   for q in quoteList:
       my_dict = {}
       my_dict["id"] = q.id
       my_dict["quote"] = q.quote
       result.append(my_dict)
   return json.dumps(result,ensure_ascii=False).encode('utf8')

@app.route("/trumptext/api/quotes", methods=["POST"])
def add_quote():
    if not request.json or not "quote" in request.json:
        abort(400)
    new_quote = request.json["quote"]
    q = Quote(quote=new_quote)
    session.add(q)
    session.commit()
    quoteList = session.query(Quote).all()
    last = quoteList[-1]
    result = []
    my_dict = {}
    my_dict["id"] = last.id
    my_dict["quote"] = last.quote
    result.append(my_dict)
    return json.dumps(result,ensure_ascii=False).encode('utf8'), 201


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

另外,在/var/www/nnelson_pythonanywhere_com_wsgi.py中的代碼:

import os
import sys

path = '/home/nnelson/trumptextapi'
if path not in sys.path:
    sys.path.append(path)

from app import app as application

如果我輸入類似以下內容: http : //nnelson.pythonanywhere.com/trumptext/api/quotes (執行GET請求)

理想情況下,它應該以JSON格式返回存儲在quotes.db數據庫中的所有引號,但是我得到的所有輸出看起來都像這樣:[]我使用curl工具在本地主機上測試了代碼,並且工作正常。 我在托管它時遇到了麻煩

任何幫助表示贊賞。

您正在使用數據庫的相對路徑,因此它可能正在查看您不期望的數據庫。 使用數據庫的完整路徑或使其相對於app.py文件的路徑,以使您知道從何處獲取數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM