Форма входа в Python/Flask выдает ошибку 500 в IISPython

Программы на Python
Ответить
Anonymous
 Форма входа в Python/Flask выдает ошибку 500 в IIS

Сообщение Anonymous »

Из-за моих ограничений на работе мне приходится размещать свое веб-приложение на IIS 7.5.
Я настроил IIS для обслуживания приложения через wfastcgi.py.

Проблема в том, что форма входа выдает ошибку HTTP 500 в IIS при нажатии на кнопке входа. Сайт загружается без проблем. Кроме того, код работает отлично, когда я запускаю его на сервере разработки Flask.

У меня есть расширенная версия кода с доступом к базе данных sqlite.Мне удалось сузить проблему до части создания сеанса входа в систему.
Я не уверен, связана ли проблема с тем, как IIS обрабатывает POST и GET запросы с wfastcgi.py или что-то еще.

Вот упрощенная версия кода, которая выдает ту же ошибку:
ОБНОВЛЕНИЕ: функции просмотра изменены на правильное обратное перенаправление.

import wiw_ad_controller as parser
import sys
from flask import Flask, flash, render_template, redirect, url_for, request, session, abort
import os

app = Flask(__name__)

@app.route('/')
@app.route('/index', methods=['GET', 'POST'])
def index():
if not session.get('logged_in'):

return render_template('login.html')
else:
return render_template('index.html')

@app.route('/login', methods=['POST'])
def login():
if request.form['username'] == 'admin' and request.form['password'] == 'admin':
session['logged_in'] = True
flash("Login was successfull")
else:
flash("Wrong password!")
return redirect(url_for('index'))

@app.route('/search', methods=['GET','POST'])
def lookup_data():
if (session.get('logged_in')==True):
if request.method == 'POST' or request.method == 'GET':

if (request.form['gpn'] and request.form['gpn'].isdigit()):

#code removed - not needed
return render_template('fetched_data.html', user_wiw=user_wiw, user_ad=user_ad)
else:
flash('Wrong ID')
return index()
return redirect(url_for('index'))

@app.route("/logout")
def logout():
session['logged_in'] = False
return redirect(url_for('index'))

@app.errorhandler(500)
def internal_error(exception):
app.logger.exception(exception)
return render_template('500.html'), 500

@app.errorhandler(404)
def internal_error(exception):
app.logger.exception(exception)
return render_template('404.html'), 404

if __name__ == '__main__':
app.secret_key=os.urandom(12)
app.run(debug=True)


Подробнее здесь: https://stackoverflow.com/questions/318 ... ror-on-iis
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»