sql >> Database teknologi >  >> RDS >> PostgreSQL

Python/Flask:Hvordan kan man se, hvor lang tid en bruger bruger på en side? (Dataindtastning/tidslog-app)

Du kan bruge en Flask-session til at spore starttidspunktet. Det er implementeret oven på browsercookies.

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

Du skal implementere en hemmelig nøgle til appen (som vist i lynstarteksemplet), og derefter kan du bruge session objekt som et nøgleværdilager for brugerspecifik information.

Til din specifikke brug kan det være noget i stil med:

@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() før formularvalideringen ikke virkede, fordi:

  • denne variabel ville være lokal for funktionens omfang og ville ikke bestå efter funktionen er fuldført
  • selvom variablen ikke var lokal for funktionskaldets omfang, kaldes den samme funktion for både GET og POST, så den ville blive tilsidesat, når brugeren sender formularen

En ting mere at være opmærksom på er, at du ikke kan stole på, at brugeren bruger cookies eller tillader JavaScript, så du bør overveje, hvordan dit program vil håndtere nul starttider i databasen.




  1. Sådan stopper du mysqld

  2. Oracle Forms afhængighed

  3. Google Dataflow (Apache beam) JdbcIO masseindsættelse i mysql-database

  4. Konverter ikke-partitionstabel til partitioneret tabel ved hjælp af ONLINE i Oracle PL/SQL