फ्लास्क पर ब्राउज़र कैश अपडेट करना

Dec 13 2020

मेरे पास एक छोटा फ्लास्क सर्वर है जिसे मैं ज्यादातर प्रयोग और टूल के लिए चला रहा हूं जिसे मैं स्वयं उपयोग (अपने होम नेटवर्क पर) के लिए विकसित कर रहा हूं। यह एक रास्पबेरी पाई मशीन पर विकास मोड पर चल रहा है। इसे स्टार्टअप पर लॉन्च करने के लिए कॉन्फ़िगर किया गया है rc.local:

sudo -H -u pi /home/pi/Server/start.sh &

और start.shफ़ाइल पढ़ता है

#!/bin/bash

cd /home/pi/Server
source /home/pi/Server/venv/bin/activate
export FLASK_APP=/home/pi/Server/app.py
export FLASK_ENV=development
export FLASK_RUN_HOST=192.168.1.104
export FLASK_RUN_PORT=5001

flask run

दिनों के पहले जोड़े में सब कुछ ठीक चल रहा था, लेकिन अब मुझे निम्नलिखित त्रुटि मिलती है:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2291, in wsgi_app
    ctx.push()
  File "/usr/lib/python3/dist-packages/flask/ctx.py", line 377, in push
    self.app, self.request
  File "/usr/lib/python3/dist-packages/flask/sessions.py", line 343, in open_session
    data = s.loads(val, max_age=max_age)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 643, in loads
    .unsign(s, max_age, return_timestamp=True)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 466, in unsign
    return value, self.timestamp_to_datetime(timestamp)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 404, in timestamp_to_datetime
    return datetime.utcfromtimestamp(ts + EPOCH)
OverflowError: timestamp out of range for platform time_t

मैं यहाँ क्या देख रहा हूँ यह ब्राउज़र कैश का एक मुद्दा है। मैं इससे निपटने के लिए फ्लास्क को कैसे बता सकता हूं?

जवाब

1 KKS Dec 13 2020 at 13:49

ऐसा लगता है कि आप सत्र / कुकीज़ का उपयोग कर रहे हैं? यह देखने की कोशिश करें, शायद तारीख उचित या अमान्य नहीं है। इसे साफ़ करने का प्रयास करें session.clear()या एक छोटी समाप्ति तिथि का उपयोग करें। मैंने 2 से 3 तक अपग्रेड करने के बाद भी समस्याएँ उठाई हैं जो कुकीज़ को गड़बड़ कर देता है, यदि आपने ऐसा किया है, तो आपको अपना कैश साफ़ करना होगा ताकि python3 की तारीख / समय कुकीज़ सेट हो सकें।

Abdur-RahmaanJanhangeer Dec 13 2020 at 13:44

यह एक त्रुटि प्रतीत होता है जब समय वापस आ जाता है इस Adafruit CircuitPython NTP समस्या से 0 है । एक प्रत्यक्ष दृष्टिकोण एक पीआर के साथ कुछ फ्लास्क निर्भरता को पैच करना होगा।

हालाँकि यह आपकी कैश आयु के साथ त्रुटि प्रतीत होता है। थोड़े समय के लिए इसे कम करने की कोशिश करें

@app.after_request
def after_request(response):
    response.headers["Cache-Control"] = "max-age=300" # in second
    return response