प्रारंभ समय को ट्रैक करने के लिए आप फ्लास्क सत्र का उपयोग कर सकते हैं। इसे ब्राउज़र कुकीज़ के शीर्ष पर लागू किया गया है।
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 दोनों के लिए कॉल किया जा रहा है, इसलिए जब उपयोगकर्ता फ़ॉर्म पोस्ट करता है तो इसे ओवरराइड कर दिया जाएगा
एक और बात जो आपको जाननी चाहिए वह यह है कि आप कुकीज़ का उपयोग करने या जावास्क्रिप्ट को अनुमति देने के लिए उपयोगकर्ता पर भरोसा नहीं कर सकते हैं, इसलिए आपको इस बात पर विचार करना चाहिए कि आपका प्रोग्राम डेटाबेस में शून्य प्रारंभ समय को कैसे संभालेगा।