/ / Jak wydrukować wydruk używając tylko metody POST? - python, json, flask

Jak wydrukować wydruki przy użyciu tylko metody POST? - python, json, kolba

Jak mogę wydrukować coś takiego:

{
username = admin
email = admin@localhost
id=42
}

Używając tylko method = ["POST"] i bez użycia render_template?

PS: Już go uruchomiłem ["GET"]

Oto mój kod:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/", methods=["POST"])

def index():
if request.method == "POST":
return jsonify(username="admin",
email="admin@localhost",
id="42")
else:
if request.method == "POST":
return jsonify(username="admin",
email="admin@localhost",
id="42")

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

Dostaję błąd metody 405.

Odpowiedzi:

0 dla odpowiedzi № 1

Hej, upewnij się, że końcowe skrypty w html są prawidłowe.

możesz odnosić się do: Kolba - błąd POST 405 Metoda niedozwolona i dokumentacja kolby: http://flask.pocoo.org/docs/0.10/quickstart/

to

<form action="/" method="post">

i to jest to samo to samo, ale inne

<form action="" method="post">

Dostęp do niego bez końcowego ukośnika spowoduje, że Flask przekieruje do kanonicznego adresu URL za pomocą ukośnika końcowego.

Biorąc pod uwagę błąd 405, podejrzewam, że to twój problem. GET jest w porządku, ponieważ zostaniesz przekierowany.


0 dla odpowiedzi nr 2

Spróbuj zwrócić formularz (jak powiedział biobirdman) na żądanie GET. Nie jestem pewien, dlaczego potrzebujesz request.method == "POST" instrukcja warunkowa. Parametr methods=["POST"] na trasie powinno wystarczyć.

Spróbuj tego:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/", methods=["POST"])
def index():
return jsonify(username="admin", email="admin@localhost", id="42")

@app.route("/", methods=["GET"])
def form():
return "<form action="/" method="POST">" 
"<input type="submit">" 
"</form>"

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