Веб-браузер вызывает это.Вы должны попробовать использовать pdb и установить трассировку, как показано ниже:
from flask import Flask, jsonify
import json
import uuid
import pdb
app = Flask(__name__)
@app.route('/<string:name>')
def get_stats(name):
proceuudi = uuid.uuid4()
stat = [
{
'process_id': str(proceuudi),
'process_name': name
}
]
with open('data.txt', 'w+') as f: # writing JSON object
pdb.set_trace()
json.dump(stat, f)
return jsonify({'stats':stat})
app.run(port = 8500)
Веб-браузер делает это.Вы используете веб-браузер для отправки запроса на ваш сервер Flask dev.При настройке вашего кода файл data.txt действительно получает правильный вывод - но этот вывод почти сразу же перезаписывается, потому что веб-браузер автоматически отправляет запрос на сервер, чтобы получить значок длястраница интернета.Веб-браузеры на основе Webkit / Blink делают это.
Это вывод из командной строки, когда я делаю запрос в своем веб-браузере (Chrome) на сервер.Все, что я делаю, это посещаю ссылку: http://127.0.0.1:8500/cat
Но мой веб-браузер также автоматически делает запрос на значок веб-страницы.
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:8500/ (Press CTRL+C to quit)
127.0.0.1 - - [02/Apr/2019 22:15:14] "GET /cat HTTP/1.1" 200 -
127.0.0.1 - - [02/Apr/2019 22:15:14] "GET /favicon.ico HTTP/1.1" 200 -
См.что второй запрос?Второй запрос GET для 'favicon.ico'?Мой веб-браузер сделал это автоматически.Это веб-браузер, который пытается автоматически захватить маленький значок для отображения в строке меню вкладки вашего веб-браузера для этой веб-страницы.Попробуйте использовать программу командной строки, такую как wget , чтобы сделать HTTP-запрос к вашему серверу.Вы можете попробовать что-то вроде этого в командной строке (например, в Linux):
wget http://127.0.0.1:8500/cat
Мы используем программу командной строки, такую как wget, потому что она будет только строго отправлять HTTP-запрос, который вы ему сообщаете.Это не похоже на веб-браузер, который делает что-то за кулисами.
Если вы используете wget для проверки этого, ваш файл data.txt выглядит следующим образом:
[{"process_id": "30423bad-7640-441e-b608-f77f4420d07e", "process_name": "cat"}]
Ваш веб-браузер отправляет запрос на избрание этой страницы, поскольку считает, что это обычная веб-страница.