Я хочу создать простой webapp как часть моей учебной деятельности. Предполагается, что Webapp попросит пользователя ввести свой email_id, если он встречает первого посетителя, и он запоминает пользователя через файл cookie и автоматически регистрирует его/ее для выполнения функций.
Это мой первый раз с созданием пользовательского веб-приложения. У меня есть синий шрифт, но я не могу понять, как его реализовать. В первую очередь я путаюсь в отношении способа сбора cookie пользователя. Я изучил различные учебники и flask_login, но я думаю, что то, что я хочу реализовать, намного проще, чем реализация flask_login.
Я также попытался использовать flask.session
но было немного сложно понять, и я закончил с ошибочной реализацией.
Вот что я до сих пор (это рудиментарно и предназначено для передачи моего прецедента):
from flask import render_template, request, redirect, url_for
@app.route("/", methods= ["GET"])
def first_page():
cookie = response.headers['cookie']
if database.lookup(cookie):
user = database.get(cookie) # it returns user_email related to that cookie id
else:
return redirect_url(url_for('login'))
data = generateSomeData() # some function
return redirect(url_for('do_that'), user_id, data, stats)
@app.route('/do_that', methods =['GET'])
def do_that(user_id):
return render_template('interface.html', user_id, stats,data) # it uses Jinja template
@app.route('/submit', methods =["GET"])
def submit():
# i want to get all the information here
user_id = request.form['user_id']# some data
answer = request.form['answer'] # some response to be recorded
data = request.form['data'] # same data that I passed in do_that to keep
database.update(data,answer,user_id)
return redirect(url_for('/do_that'))
@app.route('/login', methods=['GET'])
def login():
return render_template('login.html')
@app.route('/loggedIn', methods =['GET'])
def loggedIn():
cookie = response.headers['cookie']
user_email = response.form['user_email']
database.insert(cookie, user_email)
return redirect(url_for('first_page'))