[PYTHON] Ich habe eine Webanwendung erstellt, die das auf Google Home aufgezeichnete Lebensprotokoll wie ein Gantt-Diagramm grafisch darstellt.

Ich habe eine Webanwendung erstellt, die Lebensprotokolle wie ein Gantt-Diagramm grafisch darstellt

_Personen, Leute, Leute, Leute, Leute, Leute, Leute, Leute, Leute > LIFE LOG GRAPH GENERATOR <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

Grobe Erklärung

Aus den Lebensprotokolldaten, in denen "Datum und Uhrzeit" und "Inhalt" beschrieben sind. .. .. (Gefaltet.)
October 15, 2019 at 11:24 Uhr Schlafenszeit
October 16, 2019 at 06:03:00 Steh auf
October 16, 2019 at 07:08:00 Uhr ausgehen
October 16, 2019 at 08:Die Entwicklung um 17 Uhr begann
October 16, 2019 at 10:49AM Entwicklung beendet
October 16, 2019 at 12:30 Uhr nach Hause zurückkehren
October 16, 2019 at 12:59PM Beginnen Sie mit dem Lesen
October 16, 2019 at 04:32 Uhr Lesen beenden
October 16, 2019 at 10:31 Uhr ins Bett gehen
October 17, 2019 at 06:46 Uhr aufstehen
October 17, 2019 at 07:29 Uhr ausgehen
October 17, 2019 at 08:Die Entwicklung um 27 Uhr begann
October 17, 2019 at 12:48PM Entwicklung abgeschlossen
October 17, 2019 at 01:48PM Rückkehr nach Hause
October 17, 2019 at 02:35PM TV gestartet
October 17, 2019 at 04:54PM TV beendet

Es ist eine Webanwendung, die ein solches interaktives Diagramm erstellt. output

Ich werde es bewegen!

demo

Worüber freust du dich?

Dies wird erwartet.

Hast du überhaupt so ein Moyamoya?

――Nicht gut genug ** Ich verstehe meinen Lebensstil (Rhythmus) nicht **. ――Es ist eine Schande, Ihre Aktionen in der Lebensprotokoll-App mit ** manuell ** aufzuzeichnen. ――In der Lebensprotokollanwendung wird es häufig durch ** Kreisdiagramm ** dargestellt, aber ich möchte, dass Sie es wie ein Gantt-Diagramm darstellen.

** Diese App löst dieses Problem. ** **.

Vorsichtsmaßnahmen, die Sie kennen sollten

――Diese Webanwendung wurde von mir als Hobby für die IT erstellt, die von der Fakultät für Geographie stammt und derzeit für ein Maschinenbauunternehmen arbeitet. Daher scheint es Fehler und technische Engpässe zu geben. Ich hoffe, Sie werden es versuchen, nachdem Sie darüber nachgedacht haben. ――Dies ist die erste Webanwendung, die entwickelt wurde. Da es sich für mich um eine vollständige Testversion handelt, wird sie derzeit mit dem kostenlosen Plan von "Heroku" ausgeführt. Daher kann es durch den 30-minütigen Schlaf und das Dyno-Limit beeinträchtigt werden. Bitte vergib mir dort (weinend)

Referenz

Was machst du intern?

Es wird von Python + Flask + Plotly + Heroku betrieben.

Grob gesagt

  1. Zeigen Sie mit Flask`` index.html mit dem in / installierten Eingabeformular an.
  2. Wenn die Lebensprotokolldaten in das Eingabeformular eingegeben und die Schaltfläche "Diagramm erstellen" gedrückt wird, werden die Daten im CSV-Format formatiert und eine "Plotly-Instanz" des Gantt-Diagramms erstellt.
  3. Zeigen Sie die Datei "graph.html" mit der erstellten "Plotly-Instanz" an, die in "/ graph" eingebettet ist.
Abhängige Umgebung (reduziert)

requirement.txt


python==3.7.4
Flask==1.1.1
requests==2.22.0
gunicorn==19.9.0
pandas==0.25.1
plotly==4.1.1
Grober Quellcode (gefaltet)

app.py


import os
import re
import pandas as pd
from io import StringIO
from pathlib import Path
from datetime import datetime, timedelta
from plotly import figure_factory as pff
from plotly import offline
from flask import Flask, request, render_template


app = Flask(__name__)


#Hauptverarbeitung der Gantt-Diagrammdarstellung
def main(Im Formular eingegebene Daten):
  
Ausgelassen, weil der Code zu lang und Spaghetti ist

Plotly-Instanz zurückgeben


#Formatieren Sie die im Formular eingegebenen Daten in das CSV-Format.
def convert_input_data_to_csv(input_data):
    temp_data = re.sub(r",", "", input_data)
    conv_data = re.sub(r"(.+([AP]M|\d\d:\d\d))(\s+?)(\S+)", r"\1,\4", temp_data)

    return conv_data


#Rendern Sie die Hauptseite.
@app.route("/", methods=["GET", 'POST'])
def render_main_html():
    return render_template("index.html")


#Rendern Sie die Einstellungsseite.
@app.route("/setting", methods=["GET", 'POST'])
def render_setting_html():
    return render_template("setting.html")


#Grafik Rendern Sie die Seite.
#Die Hauptfunktion gibt eine Plot-Instanz zurück und bettet sie in HTML ein.
@app.route("/graph", methods=["GET", 'POST'])
def render_graph_at_html():
    if request.method == 'GET':
        res = request.args.get('data')
    elif request.method == 'POST':
        res = request.form['data']
    else:
        res = None

    res_conv = convert_input_data_to_csv(res)

    df = pd.read_csv(StringIO(res_conv), sep=",", header=None).set_index(0)
    df.index = df.index.map(pd.to_datetime)

    return render_template("graph.html", fig=main(df))


if __name__ == '__main__':
    app.run(debug=False, host='0.0.0.0', port=int(os.environ.get('PORT', 5000)))

Vorstellung meiner Operationsmethode

Ablauf der Aufzeichnung von Lebensprotokollen, der die Interessen der Zivilisation voll ausnutzt

Ich verknüpfe Google Home + IFTTT + Google Spread Sheets und erstelle ein Lebensprotokoll per Spracheingabe.

flow

Anschließend werden die in den Tabellen aufgezeichneten Daten kopiert und grafisch dargestellt. (Die Verknüpfungsmethode wird auf der Einstellungsseite LIFE LOG GRAPH GENERATOR erläutert.)

Schließlich

Ich fand es sehr nützlich, meinen Lebensrhythmus in einer Grafik zu visualisieren und zurückzublicken.

Zuallererst ** Ich denke, es ist in Ordnung, nur die Grafik zu betrachten und zu grinsen **. Es macht so viel Spaß, mich selbst anzusehen, dass ich es nicht weiß, wie "Hast du an diesem Tag 8 Stunden lang getrunken?" Oder "Die Schlafzeit ist sehr unterschiedlich". Ich denke, dieses ** Gefühl des Spaßes ist ein sehr wichtiger Faktor, der zur Gewohnheit von Lebensprotokollen führt **.

Und während ich weiter grinse, bemerke ich natürlich meine eigenen Verhaltensgewohnheiten.

Ergreifen Sie aus diesem Bewusstsein Verbesserungsmaßnahmen? Oder wartest du Denken wir später darüber nach! Wenn Sie es bemerken, können Sie alles andere tun. (geeignet)

Ich hoffe, dass viele Menschen diese Web-App verwenden, um ihre Lebensprotokolle und ihr Grinsen zu betrachten und dann in Zukunft ihr Bewusstsein und ihre Handlungen zu entwickeln. Überlegen.

Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Ich habe eine Webanwendung erstellt, die das auf Google Home aufgezeichnete Lebensprotokoll wie ein Gantt-Diagramm grafisch darstellt.
Ich habe eine WEB-Bewerbung bei Django gemacht
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Erstellt eine Web-App, die IT-Ereignisinformationen mit Vue und Flask abbildet
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert (Google Kalender Edition).
Ich habe eine Android-App erstellt, die Google Map anzeigt
Ich habe ein VGG16-Modell mit TensorFlow gemacht (unterwegs)
Ich habe einen neuronalen Netzwerkgenerator erstellt, der auf FPGA läuft
Eine Geschichte, bei der es mir schwer gefallen ist, mit der ersten Webanwendung eine "App zu erstellen, die Bilder wie Gemälde konvertiert"
Beachten Sie, dass ich süchtig danach war, mit Pythons mysql.connector über eine Webanwendung auf die Datenbank zuzugreifen
Lebensspiel mit Python [ich habe es geschafft] (auf Terminal & Tkinter)
Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
[Python] Ich habe das Tagebuch eines Mannes im ersten Jahr des Arbeitslebens analysiert und das Arbeitsleben positiv / negativ beurteilt.
[Python] Ich habe einen Bot erstellt, der mir die aktuelle Temperatur anzeigt, wenn ich einen Ortsnamen in LINE eingebe
Zura machte wie ein Lebensspiel
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
Ich habe einen Küchentimer erstellt, der in der Statusleiste angezeigt wird!
Die Geschichte der Entwicklung einer WEB-Anwendung, die automatisch Fangkopien generiert [MeCab]
[Python] Ich habe ein Dienstprogramm erstellt, das wie ein Pfad auf den Diktattyp zugreifen kann
Ich habe eine Chrome-Erweiterung erstellt, die ein Diagramm auf der Amedas-Seite anzeigt
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann
Ich habe eine Bibliothek konoha gemacht, die den Tokenizer auf ein schönes Gefühl umstellt
Bis die mit Flasche erstellte Webanwendung auf Heroku veröffentlicht (bereitgestellt) wird
[Python] Ich habe einen Web-Scraping-Code erstellt, der automatisch den Nachrichtentitel und die URL von Nihon Keizai Shimbun erfasst.
Ich habe AI im Netz patrouillieren lassen und einen Webdienst für das Gadget-Ranking erstellt, der einmal pro Woche aktualisiert wird