PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पायथन/फ्लास्क:कैसे बताएं कि उपयोगकर्ता किसी पृष्ठ पर कितना समय व्यतीत करता है? (डेटा प्रविष्टि / समय लॉग ऐप)

प्रारंभ समय को ट्रैक करने के लिए आप फ्लास्क सत्र का उपयोग कर सकते हैं। इसे ब्राउज़र कुकीज़ के शीर्ष पर लागू किया गया है।

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 दोनों के लिए कॉल किया जा रहा है, इसलिए जब उपयोगकर्ता फ़ॉर्म पोस्ट करता है तो इसे ओवरराइड कर दिया जाएगा

एक और बात जो आपको जाननी चाहिए वह यह है कि आप कुकीज़ का उपयोग करने या जावास्क्रिप्ट को अनुमति देने के लिए उपयोगकर्ता पर भरोसा नहीं कर सकते हैं, इसलिए आपको इस बात पर विचार करना चाहिए कि आपका प्रोग्राम डेटाबेस में शून्य प्रारंभ समय को कैसे संभालेगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जब फ़ील्ड अपडेट से पहले और बाद में सभी समान हों, तो क्या वाकई पेज फ़ाइल को पोस्टग्रेज कर दिया जाएगा?

  2. क्या कोई इस एसक्यूएल को समझा सकता है? (और मैं इसे 'पैरामीट्रिज' कैसे कर सकता हूं और एक समारोह के रूप में आह्वान कर सकता हूं?)

  3. पोस्टग्रेज के साथ स्क्लेल्केमी। 'DISTINCT' के बजाय 'DISTINCT ON' प्राप्त करने का प्रयास करें

  4. पोस्टग्रेज पर टू फेज कमिट्स का उपयोग करना

  5. Django फ़िल्टर कॉल से लौटाई गई सूची का डिफ़ॉल्ट क्रम क्या है?