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
Ich werde zurückblicken, was für ein Projekt es war.
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.
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.
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 ...
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.
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
Was ich dachte, als ich die Sprache "Python" berührte
node
zu implementieren, aber ich möchte mich dafür loben, dass ich nicht enttäuscht wurdeWie ist das? Ich hoffe, Sie kommen wieder mit Python zur Arbeit.
Recommended Posts