Je suis nouveau au développement de flacon et de Web, je suis un tutoriel et j'obtiens l'erreur interne de serveur. je reçois l'erreur lors de la tentative d'accès @app.route('question/<title>')
en entrant l'URL "/ question/title"Erreur de serveur interne de flacon
code:
from flask import flash, url_for, request, render_template
from app import app
import redis
#connect to redis data store
r = redis.StrictRedis(host='localhost', port=6379, db=0, charset='utf-8', decode_responses= True)
#alternate ways to connect to redis, each command is equivalent
#r = redis.StrictRedis()
#r = redis.StrictRedis('localhost', 6379, 0)
# server/
@app.route('/')
def hello():
#ceating a link to the second page
create_page = url_for('create')
return '<a href="' + create_page + '">Creat Question</a>'
# server/create
@app.route('/create', methods =['GET', 'POST'])
def create():
if request.method == 'GET':
# send to user the form
return render_template('CreateQuestion.html')
elif request.method == 'POST':
#read the data and save it
title = request.form['title']
answer = request.form['answer']
question = request.form['question']
#store data in data store
r.set(title + ':question', question)
r.set(title + ':answer', answer)
return render_template('CreatedQuestion.html', question = question)
else:
return "<h2>Invalid request</h2>"
@app.route('/question/<title>', methods = ['GET', 'POST'])
def question(title):
if request.method == 'GET':
# send the user the form
question = r.get(title + ':question')
return render_template('AnswerQuestion.html', question = question)
elif requset.method == 'POST':
# user has attempt answer. cheak if they're correct
submittedAnswer = request.form['submittedAnswer']
answer = r.get(title + ':answer')
if submittedAnswer == answer:
return render_template('Correct.html')
else:
return render_template('Incorrect.html', submittedAnswer = submittedAnswer, answer = answer)
else:
return '<h2>Invalid request</h2>'
je reçois la title
d'ici:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Create a new question</title>
</head>
<body>
<h2>Please create a new question</h2>
<form method="post">
<div>
<label for="title">Title</label>
<input type="text" name="title" />
</div>
<div>
<label for="question">Question</label>
<input type="text" name="question" />
</div>
<div>
<label for="answer">Answer</label>
<input type="text" name="answer" />
</div>
<button type="submit">Submit question</button>
</form>
</body>
</html>
L'application est tout simplement une application de questions et réponses, j'ai quatre fichiers HTML dans le dossier des modèles Jinja, il est censé prendre le titre de l'entrée de l'utilisateur et le remplacer par l'argument de la fonction, donc si je saisis "python" comme titre, question/python ", c'est ce que j'essaye de faire.
Alors quelqu'un peut-il me dire ce que j'ai manqué?
S'il vous plaît fournir trackback d'erreur complète. –