Я создал фляжное приложение, которое работает непрерывно, и из-за этого оно потенциально может перегружать кеш браузера. Поскольку приложение flask просто заполняет формы и работает круглосуточно и без выходных, ответы могут накапливаться и сохраняться в кеше. Я подумал, что если я запущу его в приватном режиме, то вообще не будет проблем с кэшированием. Я использую веб-браузер, чтобы открыть приложение фляги.

webbrowser.open("http://127.0.0.1:5000/")
app.run(host='0.0.0.0', port=5000)

Я также пробовал следующее, но затем он говорит, что «хром» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл. То же самое для «google-chrome» или «chrome-stable»:

import os
os.system("chrome -incognito http://example.com")

Я знаю, что вы могли бы сделать следующее, чтобы открыть в приватном режиме:

import webbrowser
url = 'www.google.com'
chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s --incognito'
webbrowser.get(chrome_path).open_new(url)

Тем не менее, я собрал все свое приложение для фляг в exe-файл с помощью pyinstaller, и его можно использовать на любом компьютере с Windows. Но я не буду знать chrome_path на этом компьютере, так как я могу открыть веб-браузер в приватном режиме, не зная пути?

Благодарность

0
Jeff Boker 24 Апр 2020 в 22:20

1 ответ

Приватный просмотр не является вашей основной проблемой. Вы объяснили, что вас действительно волнует кэширование браузера.

Используйте заголовок Cache-Control: max-age=600, чтобы ограничить время жизни десятью минутами. Или используйте тег HTML META, чтобы сделать то же самое.

РЕДАКТИРОВАТЬ

Когда вы сказали, что беспокоитесь о "потенциально перегружает кеш браузера" это звучало как количество материала тормозил браузер. Вы мало рассказали о своей схеме просмотра, в том числе было ли это GET или POST.

Если вы не хотите, чтобы браузер запоминал заполненные данные формы, используйте автозаполнение:

<form method="post" action="/myform" autocomplete="off">

Чтобы избежать синдрома XY, вы можете задать новый вопрос который задает новый набор параметров.

0
J_H 25 Апр 2020 в 00:20
Я попробовал <meta http-equiv="Cache-Control" content="no-cache, no=store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" />, но браузер все еще помнил мои данные после того, как я отправил форму. Когда я проверяю его вручную в частном браузере, он не запоминает никаких входных данных.
 – 
Jeff Boker
24 Апр 2020 в 23:37
Извините, я отредактирую свой вопрос. Чтобы уточнить, мое приложение для фляги — это просто пользователь, заполняющий формы, и оно работает круглосуточно и без выходных. Я заметил, что ответы записываются кешем (потому что он автоматически заполняет этот ответ в следующий раз) в браузере, поэтому я думаю, что кеш может быть перегружен в какой-то момент, поскольку форма никогда не выключается.
 – 
Jeff Boker
25 Апр 2020 в 01:38