#python #flask
#python #flask
Вопрос:
Я работаю с динамическими данными, для загрузки которых требуется идентификатор и год, оба из которых вводятся пользователем. Идентификатор уникален, поэтому два пользователя, скорее всего, будут просматривать разные данные. Они передаются в URL, который возвращает большой словарь. Затем этот словарь передается множеству других функций для различных анализов и визуальных эффектов. Я думал о том, чтобы отобразить данные в своем собственном скрытом маршруте и вызвать к нему другие маршруты (я новичок в flask, поэтому может быть лучший / более эффективный способ хранения и доступа к динамическим данным, подобным этому).
Вот код flask для отображения формы и где я пытаюсь получить доступ к данным:
@app.route("/")
def home():
return render_template("index.html")
@app.route("/data/<lid>/<ssn>", methods=["GET","POST"])
def data_league():
if request.method == "POST":
league_id = request.form["lid"]
season = request.form["ssn"]
url = 'http://fantasy.espn.com/apis/v3/games/ffl/seasons/' season '/segments/0/leagues/' league_id '?view=mMatchupScoreamp;view=mTeamamp;view=mSettings'
r = requests.get(url,
params={'view':'mMatchup'})
d = r.json()
return d
И HTML-код, который создает форму:
<form class="row row-cols-lg-auto g-3 align-items-center" action="#" method="post" style="margin-
left: 180px;">
<div class="col-5">
<label class="visually-hidden" for="league_id">Username</label>
<div class="input-group">
<input type="text" class="form-control" name="lid" id="lId" placeholder="League ID">
</div>
</div>
<div class="col-5">
<label class="visually-hidden" for="season">Preference</label>
<select class="form-select" name="ssn" id="Ssn">
<option selected>Select a Season</option>
<option value="1">2020</option>
<option value="2">2019</option>
<option value="3">2018</option>
</select>
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
Когда я запускаю приложение и ввожу идентификатор и год, я получаю сообщение TypeError о том, что «data_league() получил неожиданный аргумент ключевого слова ‘lid'». Что я делаю не так?
Комментарии:
1. def data_league(lid, ssn): затем удалите lid=request.form[«…»] после flask.palletsprojects.com/en/1.1.x/quickstart/#variable-rules
2. Я сделал это и получил сообщение об ошибке «TypeError: функция просмотра не вернула действительный ответ. Функция либо вернула None, либо завершилась без оператора return «. Я думал, что мне нужно обернуть переменную «d» в json.dumps (d) и вернуть ее, но она выдала мне ту же ошибку. Я также попытался отобразить оригинал «index.html » шаблон и добавление «d = d» после, но это тоже не сработало.
3. Поскольку
if request.method == "POST":
значение равно false, то ничего не возвращается. Добавьте оператор return, если запрос не POST .