sql >> Databáze >  >> RDS >> PostgreSQL

Python/Flask:Jak zjistit, jak dlouho uživatel stráví na stránce? (Aplikace pro zadávání dat/časový protokol)

Ke sledování času zahájení můžete použít relaci Flask. Je implementován nad soubory cookie prohlížeče.

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

Pro aplikaci musíte implementovat tajný klíč (jak je znázorněno v příkladu rychlého startu) a poté můžete použít session objekt jako úložiště klíčových hodnot pro informace specifické pro uživatele.

Pro váš konkrétní případ použití to může být něco jako:

@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() předtím, než ověření formuláře nefungovalo, protože:

  • tato proměnná by byla lokální vzhledem k rozsahu funkce a po dokončení funkce by nepřetrvávala
  • i kdyby proměnná nebyla lokální vzhledem k rozsahu volání funkce, stejná funkce se volá pro GET i POST, takže když uživatel odešle formulář, byla by přepsána

Ještě jednu věc, kterou je třeba si uvědomit, je, že nemůžete věřit uživateli, že používá soubory cookie nebo že povolí JavaScript, takže byste měli zvážit, jak by váš program naložil s nulovými časy spuštění v databázi.




  1. Java:Volání uložené procedury v databázi Oracle

  2. dynamické číslo kde podmínka v oracle sql

  3. Jak mohu udělat fatální chyby VŠECH varování mysql?

  4. Problémy s kombinací HAVING a WHERE na velmi jednoduchém QUERY