Während ich den diesmal erstellten Service vorstelle, werde ich den Entwicklungsfluss und die Stolperpunkte vorstellen. Wenn es Menschen hilft, die ähnliche Dinge machen ...
――Ich bin ein Unterstützer der Fußball-J-League-Mannschaft namens Kawasaki Frontale, aber ich wollte frühere Daten nachschlagen, nachdem ich den Rekord von Siegen in Folge (10 Siege in Folge!) Im Jahr 2020 gebrochen hatte. ――Ich wollte es mir selbst machen, WebAPI besser zu verstehen.
Der Quellcode für Front und Back ist auf GitHub verfügbar.
Ich werde den Entwicklungsfluss erläutern, während ich die Websites vorstelle, auf die ich mich bezog.
Für die Basis habe ich hier verwiesen (Herstellen einer Verbindung zu MySQL mit Python in Docker).
version: "3"
services:
mysql_db_j:
container_name: "mysql_db_j"
image: mysql:5.7
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
environment: # Set up mysql database name and password
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: employees
MYSQL_USER: user
MYSQL_PASSWORD: password
networks:
- app-tier
python3_j:
restart: always
build: .
ports:
- '3000:3000'
- '5000:5000'
container_name: "python3_j"
working_dir: "/root/"
tty: true
stdin_open: true
depends_on:
- mysql_db_j
networks:
- app-tier
volumes:
- .:/root/app/
# command: python3 app/app.py
command: >
bash -c "python3 app/create_teamid.py
&& python3 app/create_result.py
&& python3 app/app.py
"
networks:
app-tier:
driver: bridge
Ich habe einen MySQL- und Python-Container gestartet und verbunden.
Ebenfalls. Mit dem Befehl `:`
werden die DB-Erstellung und der Flask beim Start gestartet.
Beim Scraping werden `Anfragen``` und`
beautifulsoup verwendet. Ich habe `` `mysql-connector-python
verwendet, um eine Verbindung von Python zu MySQl herzustellen.
Siehe hier
・ Zusammenfassung der Verwendung von Python + mysql-connector-python
・ Installieren und Verbinden von MySQL Connector mit Python3 [Einführung in die bequeme Verwendung]
・ Offizielles Dokument
Die mit der Flask-API in der Datenbank gespeicherten Daten werden als JSON gesendet. Referenz ・ Einfach zu verwendende Flasche
Außerdem müssen Sie `` `flask_cors``` verwenden
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Ich bekomme so einen Fehler. Notwendig für CROS-Maßnahmen.
Installieren Sie Docker auf EC2 und starten Sie Docker wie folgt. Ich wollte unbedingt ECS verwenden ... Referenz
Beim Versuch, eine Web-API zu entwickeln, konnte ich nicht viele Informationen finden, die als Referenz für den "ersten Schritt" verwendet werden könnten. Es gibt verschiedene Erklärungen für die Prinzipien von Restful, aber wie ist es eigentlich Standard? Es wird sein. Vorerst habe ich es basierend auf meinen Erfahrungen mit der Web-API entworfen.
Ich habe mit einer Bibliothek namens mysql-connector-python eine Verbindung zu MySQL hergestellt, aber als ich von Python aus operierte, gab es das Problem, dass es nicht gespeichert wurde, selbst wenn ich die DB-Verarbeitung hinzugefügt habe. Ich stecke schon lange fest, aber in der offiziellen Dokumentation "Connector / Python standardmäßig" Es ist wichtig, diese Methode nach jeder Transaktion aufzurufen, die die Daten in einer Tabelle ändert, die die Transaktionsspeicher-Engine verwendet, da sie nicht automatisch festgeschrieben wird. " Ich muss das Dokument richtig lesen!
Beim Veröffentlichen der Vorderseite auf Github-Seiten tritt der folgende Fehler auf
index.js:30 Mixed Content: The page at 'https://yuta97.github.io/j-search-front/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://18.178.166.9:5000/continuous-records/match/win/?yearFrom=2017&yearTo=2019&continuou_recordFrom=2&continuou_recordTo=15'. This request has been blocked; the content must be served over HTTPS.
Kurz gesagt, es scheint, dass das Problem darin besteht, dass Sie den http-API-Server auf der https-Site aufrufen. Es scheint, dass solche gemischten Inhalte veraltet sind. Als Lösung habe ich versucht, SSL für den EC2-API-Server zu verwenden, aber es funktioniert nicht ... Als sorgfältige Maßnahme hosten Sie mit S3 und verwenden Sie die http-Kommunikation an der Rezeption.
Schreiben Sie Ihre Eindrücke träge.
――Es ist wichtig, dass Ihre geistige Gesundheit klein wird und sich wie eine agile Entwicklung verbessert. ――Wie suchen Medienvertreter nach Aktualisierungen von Datensätzen? Gibt es eine Datenbank? ――Sie müssen sich während der Verwendung an AWS gewöhnen. Es fällt mir immer noch schwer zu verstehen. ――Ich möchte mehr über Sicherheit erfahren. Wenn Sie nicht wissen, um welche Art von Angriff es sich handelt, wissen Sie nicht, was Sie tun sollen.
Ich werde auflisten, was ich in Zukunft tun möchte.