簡體   English   中英

進行請求或數據庫時,Flask + apache內部服務器錯誤

[英]Flask + apache Internal Server Error when making request or database

我在燒瓶中使用apache,並且在打開/ login時(我在這里使用數據庫)我得到內部服務器錯誤,因為我使用sqlite和python庫sqlite3作為數據庫即時消息

DATABASE = '../../var/www/flask/database'

連接數據庫功能:

def connect_db():
    return sqlite3.connect(DATABASE)

登入碼

@app.route('/login', methods=['POST'])
def login():
    if request.cookies.get("name"):
        return render_template("home.html",name=request.cookies.get('name'))
    g.db = connect_db() 
    cur = g.db.execute('SELECT email, password, name, confirmed FROM users')
    for row in cur.fetchall(): 
            if row[0] == request.form['email'] and row[1] ==   hashlib.sha224(request.form['password']).hexdigest() and row[3] == 1:
                resp = make_response(redirect(host + "/home"))
                resp.set_cookie("name",row[2])
                resp.set_cookie("password",row[1])
                return resp
    return redirect(host)

這是我的.wsgi代碼

import sys

sys.path.insert(0, '/var/www/flask/')

from routes import app as application

這是我的應用程序樹
燒瓶-靜態-(css js等)
-模板-(jinja2模板)
-database.db
-最小wsgi
-route.py(應用程序)

這是routes.com.conf

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName server.test
    WSGIScriptAlias / /var/www/flask/min.wsgi
    <Directory /var/www/flask/>
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

您需要為您的DATABASE值使用絕對路徑

mod_wsgi模塊將為您的應用設置一個不同的當前工作目錄,您可能無法訪問該目錄。 即使您確實為您的Apache進程提供了對該目錄的寫訪問權限,您也不想最終更改其他地方看似無害的設置,以使所有這些都停止工作。

也許是因為login功能中的縮進錯誤? 這可能會導致其他錯誤日志,但這是我第一次以錯誤的方式查看格式設置的代碼(即使只是錯誤的復制粘貼)。

暫無
暫無

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

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