PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Python/Flask:Как да разберете колко време потребителят прекарва на страница? (Приложение за въвеждане на данни/дневник на времето)

Можете да използвате сесия на Flask, за да проследите началния час. Внедрява се върху бисквитките на браузъра.

http://flask.pocoo.org/docs/0.12/quickstart/#sessions

Трябва да внедрите таен ключ за приложението (както е показано в примера за бърз старт), след което можете да използвате session обект като хранилище на ключова стойност за специфична за потребителя информация.

За вашия конкретен случай на употреба може да е нещо като:

@app.route('/logpage', methods=['GET', 'POST'])
@login_required
def logpage():
    form = LogForm()

    if form.validate_on_submit():
        entry = LogData(sessionid=form.sessionid.data, user_id=current_user.get_id(), 
                        starttime=session.pop('start_time', None), endtime=datetime.utcnow())
        db.session.add(entry)
        db.session.commit()

        return redirect(url_for('home'))

    session['start_time'] = datetime.utcnow()

    return render_template('logpage.html', form=form)

pageload = datetime.utcnow() преди проверката на формуляра да не работи, защото:

  • тази променлива ще бъде локална за обхвата на функцията и няма да се запази след завършване на функцията
  • дори променливата да не е локална за обхвата на извикването на функцията, същата функция се извиква както за GET, така и за POST, така че ще бъде заменена, когато потребителят публикува формуляра

Още нещо, което трябва да имате предвид е, че не можете да се доверите на потребителя, че използва бисквитки или че позволява JavaScript, така че трябва да помислите как вашата програма ще обработва нулеви начални времена в базата данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres JSONb към XML с tag_name и tag_value

  2. Изброяване и превключване на бази данни в PostgreSQL

  3. контекст на изпълнение на тригер на база данни в PostgreSQL

  4. Условие за търсене и замяна на PostgreSQL

  5. Как да групирате по седмица в postgresql