Ich erstelle eine JSON-API (in einer JSON-Datei gespeichert) mit Flask, Python 2.7 und REST-Anforderungen.
Mein Problem ist, dass ich nur auf alle Daten zugreifen kann, die in einer JSON-Datei gespeichert sind. Ich möchte in der Lage sein, nur ein Objekt aus dem Array zu sehen (Wenn ich die Daten für eine PUT-Anfrage bearbeiten möchte), mit Daten ['title'], die ich gerade nicht arbeite. Was bringt mich dazu zu denken, dass ich das angeforderte Formular vielleicht nicht korrekt speichere? Irgendeine Idee, wo es nicht richtig ist, wenn ich die Daten mit Post speichern? Oder wenn es ein anderes Problem gibt? Schätzen Sie alle Hilfe!Wird das angeforderte Formular korrekt in einer JSON-API gespeichert?
@app.route('/articleAdded', methods = ['POST'])
def added():
'''Adds new articles'''
if request.method == 'POST':
title = request.form['title']
author = request.form['author']
text = request.form['text']
article = {'title' : title, 'author' : author, 'text' : text}
articles.append(article)
try:
with open("articles.json", "w") as json_File:
new_art = json.dump(articles, json_File, sort_keys=True, indent=4)
json_File.close()
return render_template('articleAdded.html', title = title, author = author, text = text)
except:
return render_template('errorHandler.html'), 404
@app.route('/edit/<string:title>', methods=['GET'])
def edit(title):
'''shows specific aticle'''
try:
with open("articles.json", 'r') as article_file:
data = json.load(article_file)
print data['title']
if title == data['title'] :
print "hello"
return render_template('editArticle.html', data = data, title = title)
else:
print "Something went wrong!"
data.close()
except:
return render_template('errorHandler.html'), 404
Können Sie Ihr Programm ausführen und uns sagen, was Sie für die print-Anweisungen erhalten oder nicht einmal kompilieren? Ein schnelles Problem, das ich sehe, ist, dass Sie in der ersten Methode etwas an die Variable "articles" anhängen, die nie deklariert wurde. – JoshKopen
Artikel ist eine globale Liste. Der obige Code zeigt nicht meinen gesamten Code. Es läuft ohne Fehler. Das Problem ist jedoch, dass wenn ich meine JSON-Datei mit der GET-Anfrage öffne, ich nur das gesamte Objekt drucken kann. Wenn ich also drei Artikel hinzugefügt habe, werden alle diese Artikel gedruckt. Ich möchte nur einen dieser drei Artikel drucken können. Was ich denke, Sie sollten in der Lage sein, nur durch das Schreiben von Daten ["Titel"] (wenn ich den Titel will). Aber das funktioniert nicht, also dachte ich, es könnte ein Problem damit geben, wie ich die Artikel hinzufüge? –