[PYTHON] Erstellt eine Web-App, die IT-Ereignisinformationen mit Vue und Flask abbildet

Einführung

Beim Surfen im Internet habe ich erfahren, dass connpass on the IT event portal site eine Web-API verteilt, die Ereignisinformationen bereitstellt und den Veranstaltungsort usw. auf der Karte anzeigt. Ich dachte, es wäre praktisch, wenn es eine App gäbe, und beendete sie, indem ich die ersten drei Tage des Jahres opferte.

Ergebnisse

Signpost for connpass GitHub スクリーンショット 2020-01-07 21.57.23.png

Es handelt sich um eine sogenannte SPA-Anwendung, die die durch asynchrone Kommunikation erhaltene Antwort dynamisch abbildet.

Framework-Bibliothek und Gründe für die Auswahl

Verschiedene Punkte

CORS-Grenze

CORS steht für Cross-Origin Resource Sharing. Es ist leicht zu verstehen: "Bringen Sie keine Daten von der Website eines anderen ohne Erlaubnis durch asynchrone Kommunikation." In diesem Fall kann die Antwort der Connpass-API aufgrund von CORS-Einschränkungen nicht auf der Vorderseite abgerufen werden. Sobald Sie es auf Ihrem eigenen Server erhalten haben, werden Sie nicht mehr vom CORS-Limit betroffen sein. Zuerst dachte ich über die Verwendung von Firebase-Hosting und -Funktion nach, entschied mich jedoch dafür, mit Flask einen Server zu erstellen, der auf die Connpass-API zugreift und die Antwort empfängt. Flask ist sehr einfach, daher denke ich, dass es am besten ist, wenn Sie einen Server benötigen, da diesmal alles in Ordnung ist, und ich persönlich mag es, also habe ich es übernommen.

Flask and Vue.js Umgebungskonstruktion

Ich denke, Vue.js wird oft in Kombination mit node.js verwendet. Als Ergebnis verschiedener Untersuchungen haben wir eine Konfiguration entwickelt, die in Koexistenz mit Flask entwickelt werden kann. スクリーンショット 2020-01-07 21.51.25.png

Python-Skripte und Heroku-Serverdateien werden im Stammverzeichnis abgelegt, und die Vorderseite wird im vue-Verzeichnis gespeichert. Wenn Sie die folgenden Einstellungen vornehmen, verweist Flask auf vue / dist als Vorlagenordner.


from flask import Flask, render_template, request, jsonify, make_response, send_file, redirect, url_for

app = Flask(__name__, static_folder='./vue/dist/static', template_folder='./vue/dist')


#Unter Routing ...

Erstellen eines API-Servers

Ich habe einen API-Server erstellt, der gemäß connpass API-Spezifikationen zugreift und die erhaltene Antwort wie folgt an die Front zurückgibt.

import urllib.request, urllib.parse
import json
@app.route('/api/')
def getApi():
    keyword_or = request.args.get('keyword_or')
    ym = request.args.get('ym')
    ymd = request.args.get('ymd')
    owner_nickname = request.args.get('owner_nickname')
    start = request.args.get('start')
    order = request.args.get('order')
    count = request.args.get('count')
    all_params = {
        "keyword_or": keyword_or,
        "ym":ym,
        "ymd":ymd,
        "owner_nickname":owner_nickname,
        "start":start,
        "order":order,
        "count":100
    }

    params = {}
    #Entfernen Sie Elemente mit dem Wert None aus den Parametern
    for key in all_params:
        if all_params[key] != None:
            params[key] = all_params[key]


    p = urllib.parse.urlencode(params)
    url = "https://connpass.com/api/v1/event/?" + p

    with urllib.request.urlopen(url) as res:
        html = res.read().decode().replace(r"\n","")
        jsonData = json.loads(html)
        return jsonify(jsonData)

Es empfängt dieselben Parameter wie die connpassAPI, wirft sie unverändert an die connpassAPI, dekodiert die Antwort und gibt sie als json zurück. Es ist ein vollständiger Relay-Server.

Referenzseite

Erstellen einer einfachen App mit Vue.js (vue-cli) und Flask [Seite des zweiten Halbservers] BootstrapVue VueMapbox

Recommended Posts

Erstellt eine Web-App, die IT-Ereignisinformationen mit Vue und Flask abbildet
Ich habe eine WEB-Bewerbung bei Django gemacht
Ich habe eine einfache Buch-App mit Python + Flask ~ Introduction ~ erstellt
Ich habe mit Python, Flask und Heroku ein Nyanko-Tweet-Formular erstellt
Ich habe einen Chat-Chat-Bot mit Tensor2Tensor erstellt und diesmal hat es funktioniert
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Starten Sie einen Webserver mit Python und Flask
Mattermost Bot mit Python gemacht (+ Flask)
Ich habe ein System erstellt, das automatisch entscheidet, ob es morgen mit Python ausgeführt wird, und es zu Google Kalender hinzufügt.
Analysieren und visualisieren Sie JSON (Webanwendung ⑤ mit Python + Flask)
Ich habe ein Docker-Image erstellt, das RSS liest und automatisch regelmäßig twittert, und es veröffentlicht.
Entwicklung von Webanwendungen mit Flask
Webanwendung mit Python + Flask ② ③
Webanwendung mit Python + Flask ④
So stellen Sie eine mit Flask erstellte Web-App für Heroku bereit
Erstellen Sie eine Web-App, die Zahlen mit einem neuronalen Netzwerk erkennt
(Fehler) Stellen Sie eine mit Flask mit Heroku erstellte Web-App bereit
Ich habe einen harten Pomodoro-Timer entwickelt, der mit CUI funktioniert
Ich habe ein Plug-In erstellt, das "Daruma-san Fell" mit Minecraft ausführen kann
[Python] Ich habe eine Funktion erstellt, die AES entschlüsselt und entschlüsselt, indem ich sie einfach mit pycrypto geworfen habe.
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Ich habe ein Tool erstellt, um automatisch ein Zustandsübergangsdiagramm zu generieren, das sowohl für die Webentwicklung als auch für die Anwendungsentwicklung verwendet werden kann
Ich habe eine einfache Schaltung mit Python gemacht (AND, OR, NOR, etc.)
Ich habe ein Paket erstellt, das morphologische Analysegeräte mit Python vergleichen kann
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 1 erstellen
Erstellen einer Webanwendung mit Flask ②
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
Ich habe mit Python eine Lotterie gemacht.
Beachten Sie, dass ich süchtig danach war, mit Pythons mysql.connector über eine Webanwendung auf die Datenbank zuzugreifen
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Erstellen Sie eine Webanwendung mit Django
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 3 erstellen
Erstellen einer Webanwendung mit Flask ①
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 4 erstellen
Startete eine Webanwendung auf AWS mit Django und wechselte Jobs
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Ich habe mit Python einen Daemon erstellt
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
Ich habe mit Heroku + Flask + PostgreSQL (Heroku Postgres) einen LINE-Bot erstellt, der mir den Typ und die Stärke von Pokemon in der Garal-Region angibt.
Ich habe eine Webanwendung erstellt, die das auf Google Home aufgezeichnete Lebensprotokoll wie ein Gantt-Diagramm grafisch darstellt.
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
[GCP] Verfahren zum Erstellen einer Webanwendung mit Cloud-Funktionen (Python + Flask)
[Streamlit] Ich hasse JavaScript, deshalb erstelle ich eine Webanwendung nur mit Python
Ich war festgefahren, eine Kolbenanwendung mit einem Reverse-Proxy dazwischen umzuleiten
Bis die mit Flasche erstellte Webanwendung auf Heroku veröffentlicht (bereitgestellt) wird
Ich habe ein Tool erstellt, das die Dekomprimierung mit CLI (Python3) etwas erleichtert.
Flask + PyPy Mit Blueprint habe ich einen Geschwindigkeits-Benchmark für das große Web erstellt
Starten Sie einen Webserver mit Bottle and Flask (ich habe auch versucht, Apache zu verwenden)
Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (5. Information Entropy)
Ich habe einen Slack-Bot geschrieben, der Verzögerungsinformationen mit AWS Lambda benachrichtigt
Ich habe ein Modul PyNanaco erstellt, das Nanaco-Guthaben mit Python belasten kann