Verschiedene Hinweise zur Verwendung von Python für Projekte

Einführung

Hallo, dies ist UNIBA von MJ. Diese Geschichte handelt von der Arbeit mit Python in einem bestimmten Projekt. Python ist eine der bekanntesten Sprachen, die keiner besonderen Erklärung bedarf. Normalerweise arbeite ich als Frontingenieur, aber ich fing ungefähr im April an, "Python" zu berühren, weil ich dachte, dass ich das Backend in letzter Zeit kennenlernen möchte. Bei UNIVA verwende ich hauptsächlich Sprachen wie "Javascript", was "Knoten" ist, und "Ruby", was "Schienen" ist. Als Küchenkrankheit entschied ich mich für "Python", was niemand getan hatte (ich bedauere es, weil ich in Qual war, weil mich niemand unterstützen konnte). Zu dieser Zeit, genau zum richtigen Zeitpunkt, gab es ein Back-End (ich frage mich, ob es ein Back-End ist, weil ich am Ende keinen Server eingerichtet habe, aber ...), also habe ich es herausgefordert. Es kommt darauf an, was ich gesehen habe.

Übrigens schreibe ich es ziemlich chaotisch. Ich weiß es nicht

Angelegenheit

Ich werde zurückblicken, was für ein Projekt es war.

In Bezug auf die Umsetzung

Das Glück an dieser Implementierung war, dass die serverseitige Implementierung nicht eingegangen ist. Ich hatte das große Glück, dass ich nicht zusätzlich zur DB und so weiter an die Infrastrukturentwicklung denken musste. Oder besser gesagt, ich war ziemlich besorgt (niemand in der Firma betreibt einen Server mit "Python" !!!).

Lassen Sie uns eins nach dem anderen zurückblicken.

Mechanismus zum automatischen Hochladen von Bildern und HTML-Dateien beim Speichern von Fotos (Ordnerüberwachung + Vorlage)

Watchdog zum Überwachen von Ordnern, jinja2 zum Generieren von html Ich habe / dev /) benutzt. Beide sind ziemlich einfach zu bedienende Bibliotheken. Es ist eine gut gemachte Bibliothek, die keiner besonderen Erklärung bedarf. Dies machte das Hauptskript viel einfacher. Wenn Sie Watchdog verwenden möchten, müssen einige Inhalte der zu überwachenden Ordner (z. B. die Anzahl der Dateien und die Anzahl der Änderungen) getestet werden. Bei diesem Projekt gab es kein besonderes Problem.

Das Ziel für das Hochladen von Daten ist aws

In Bezug auf die Einstellung von aws war ich für den Teil verantwortlich, den ich normalerweise der Back-End-Person im Unternehmen überlasse. Es ist eine gute Erinnerung, dass ich im Vertragsteil ein wenig Probleme hatte, als ich die Domain mit route53 bekam. s3 kann nicht "basisch zertifiziert" sein, kann aber durch "IP" eingeschränkt werden, sodass der Testzeitraum dort unterstützt wurde. Die Überprüfung der "SNS-Freigabe" war jedoch etwas mühsam, daher möchte ich es beim nächsten Mal einfacher machen.

Ich habe boto zum Hochladen auf der Python-Seite verwendet. Es wird gesagt, dass "amazon" es offiziell herausgegeben hat, aber ehrlich gesagt war es schwierig, die Referenz zu lesen, und ich konnte das Kommunikationszeitlimit nicht gut einstellen, so dass ich mich ein wenig schmerzhaft fühlte. Wenn der Bucket-Name "." Enthält, müssen Sie außerdem etwas Besonderes schreiben. Ich bemerkte die Tatsache kurz vor der Veröffentlichung und bekam ein wenig kalten Schweiß. Wenn Sie es einer Domain zuordnen, müssen Sie "." Hinzufügen. Ich möchte, dass Sie dies auf der Bibliotheksseite beachten ...

Verschlüsseln Sie den Upload-Zielpfad mit base62

Dies ist eine Vorsichtsmaßnahme, um zu verhindern, dass Unfug Fotos herunterlädt, wenn sie veröffentlicht werden. Zuerst habe ich es selbst implementiert, aber am Ende habe ich eine Bibliothek namens basehash verwendet. Der Teil, der ein kleines Problem wurde, war die Zusammenarbeit mit anderen Apps. Als System wurde zusätzlich zu "Python" eine von "openFrameworks" erstellte Anwendung ausgeführt, und QR-Code wurde als Link zum Web generiert, aber der auf der "C ++" - Seite generierte Wert ist die "Python" -Seite. Passt nicht. Der Algorithmus ist der gleiche, passt aber immer noch nicht. Die Ursache ist, dass der Wert von Hash zu groß ist, um von C ++ normal behandelt zu werden. Kurz gesagt, es war ein großes int-Problem. Es wurde gesagt, dass "Python" so gut berechnet, wie es Speicher in der Spezifikation gibt. Ich denke, dies ist der Grund, warum "Python" in Forschungsbereichen wie Universitäten verwendet wird. Immerhin hat der verschlüsselte Teil Python aus C ++ getroffen und das Ergebnis zurückgegeben. if __name__ == '__ main __': ist sehr nützlich. glücklich.

Wo als andere Anwendungen zu pflegen

Hier war es nüchtern. .. ..

Wenn beispielsweise die Kommunikation unterbrochen wird, wird ein Frame generiert und eine Warnung wie "Bitte erneut versuchen" ausgegeben.

Der Warnbildschirm muss im Hauptthread angezeigt werden (ein Amateur, der anfangs verwirrt war, ohne es zu wissen), aber der von watchdog aufgerufene Upload-Prozess wird aufgrund der Art der Bibliothek in einem Unter-Thread ausgeführt, also zwischen Threads Ich musste kommunizieren. Um ehrlich zu sein, war es eine Welt, die dem Onkel unbekannt war, der normalerweise mit "HTML" spielt. Die Klasse "Queue" hat dieses Problem gelöst. Wir konnten "join" und "task_done" verwenden, um die Prozess-Stop-and-Go-Koordination zu erleichtern. Nein, es ist praktisch.

Die Ausgabe des Protokolls erfolgte mit "Protokollierung". Um ehrlich zu sein, möchte ich den Teil der Protokollrotation etwas mehr ausfüllen.

Außerdem habe ich mit applescript dafür gesorgt, dass es beim Anmelden automatisch gestartet wird, aber diese Geschichte wird diesmal weggelassen

Impressionen

Was ich dachte, als ich die Sprache "Python" berührte

Wie ist das? Ich hoffe, Sie kommen wieder mit Python zur Arbeit.

Recommended Posts

Verschiedene Hinweise zur Verwendung von Python für Projekte
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe versucht, Kwant zu verwenden, ein Python-Modul für die Quantentransportberechnung
[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen
Ich habe zum ersten Mal versucht, Python zu programmieren.
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe versucht, die Python-Bibliothek "pykakasi" zu verwenden, die Kanji in Romaji konvertieren kann.
Eine Geschichte, die praktisch war, als ich versuchte, das Python-IP-Adressmodul zu verwenden
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe versucht, die checkio-API zu verwenden
[Für Anfänger] Ich habe versucht, die Tensorflow-Objekterkennungs-API zu verwenden
Ich habe versucht, das Python Package Repository (Warehouse) auszuführen, das PyPI unterstützt
Ich habe die Bewegung Python3 ausprobiert, die die Richtung im Koordinatensystem ändert
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Ich habe zum ersten Mal Tensorflow ausprobiert
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Hinweise zur Verwendung von Python (Pydev) mit Eclipse
Ich habe das Python Tornado Testing Framework ausprobiert
Ich habe versucht, die BigQuery-Speicher-API zu verwenden
[Textklassifizierung] Ich habe versucht, den Aufmerksamkeitsmechanismus für Faltungs-Neuronale Netze zu verwenden.
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe in der Bibliothek nach der Verwendung der Gracenote-API gesucht
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Ich habe versucht, PyCaret mit der schnellsten Geschwindigkeit zu verwenden
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
[Python] Ich habe nach dem längsten Pokemon Shiritori gesucht
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe Mind Meld zum ersten Mal ausprobiert
Ich habe versucht, Firebase für Djangos Cache-Server zu verwenden
Ich habe versucht, den Bildfilter von OpenCV zu verwenden
Ich habe versucht, die funktionale Programmierbibliothek toolz zu verwenden
[Python] Ich habe versucht, das Mitgliederbild der Idolgruppe mithilfe von Keras zu beurteilen
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden