Über
Diese Website ist ein mehrsprachiges CMS / Blog, das ich mit Python, den framework Flask und SQLAlchemy erstelle. Es wird auf meinem Server ISPConfig3 (Nginx + Mariadb) unter Verwendung von Docker bereitgestellt, der auch für die Entwicklung verwendet wird. Die Website bietet user Registrierung, viele Administratorfunktionen, Datenschutz und Sicherheit, so dass dies kein kleines Projekt ist. Einige 'Highlights':
Technik
- Python 3 (3.7)
- Flask
- SQLAlchemy
- Mariadb
- Docker, docker-compose
- Q4_196_ZÖNEMECALPER_4Q4
- Fontawesome
- Tinymce
- ISPConfig3
Bereitstellung
Die Schritte sind Entwicklung, staging und Produktion, alle mit Docker und docker-compose. Die Entwicklung verwendet den Entwicklungsserver Flask , staging und die Produktion verwendet den Server Gunicorn . Schließlich wird ISPConfig3 zur Steuerung der Domäne, der Datenbank und der SMTP -E-Mail verwendet, Nignx ist als reverse proxy konfiguriert.
Datenschutz
Erwarten Sie nicht, dass Sie hier Lösungen wie die Verwendung von CDNs, Google Analytics, Facebook Plugins usw. finden. Die Privatsphäre ist eines der wichtigsten Dinge im Leben. Es ist zwar unmöglich zu verhindern, dass wir verfolgt und unsere wertvollen privaten Daten gesammelt werden, aber ich glaube, wir müssen uns alle bemühen, dies zu minimieren.
Sicherheit
Sicherheit ist immer ein laufender Prozess. Das fängt beim Design für Sicherheit an, was auch bedeutet, dass Sie viel Mühe in die Protokollierung der Dinge stecken müssen. Es gibt großartige Werkzeuge wie OWASP ZAP und Online-Dienste wie securityheaders.com und detectify.com, die Ihnen helfen können, Schwachstellen zu identifizieren.
Mehrsprachig
Während der Text dieser Website auf Englisch verfasst ist, unterstützt sie mit der Erweiterung Flask-Babel mehrere Sprachen. Die Texte in den anderen Sprachen werden zur Zeit mit Hilfe der DeepL API maschinell übersetzt und sind manchmal alles andere als perfekt, aber Sie können die messages.po -Dateien jederzeit bearbeiten.
Maschinelles Lernen
Die künstliche Intelligenz (AI) dringt auf vielfältige Weise in unser Leben ein. Python ist die Sprache, die beim maschinellen Lernen und beim Tiefenlernen verwendet wird. Mir persönlich gefallen diese Entwicklungen nicht, weil niemand für die getroffenen Entscheidungen haftbar gemacht werden kann. Aber AI kann uns auch auf gute Art und Weise helfen, z.B. durch Empfehlungen für andere Nachrichten am Ende einer Nachricht.
Mehr dazu: Kivy
War auch auf der Suche nach einem Python GUI. Ich begann mit tkinter , stellte aber bald fest, dass dies für meine Zwecke viele Einschränkungen hatte. Ich stieß auf Kivy und begann, eine erste Anwendung damit zu erstellen. Sie können auch eine Kivy -Anwendung auf Android einsetzen, aber wollen wir das Android -Ökosystem unterstützen? Wird auch über mein Kivy -Projekt berichten.
Wie geht es weiter?
In den nächsten Monaten werde ich versuchen, einige der Dinge zu dokumentieren, die ich getan habe, damit das funktioniert, wie z.B. die Verwendung von SQLAlchemy ohne Flask-SQLAlchemy, Vermeidung schlecht gewarteter Flask -Erweiterungen, Migrationen mit Alembic, Minimierung der Größe einer Docker image, docker-compose -Konfiguration.
Vielen Dank, Peter
Einen Kommentar hinterlassen
Kommentieren Sie anonym oder melden Sie sich zum Kommentieren an.
Kommentare (4)
Eine Antwort hinterlassen
Antworten Sie anonym oder melden Sie sich an, um zu antworten.
Hallo Peter,
Super dat je zoveel kennis deelt op je site, goed leesbaar en je kan er wat van leren! IK volg i.p.v. Kivi https://beeware.org/. Wel een complexe setup en tot nu toe nog weinig ontwikkelingen voor het web, meer voor APPS.
Groet,
Marcel
Hallo Marcel,
Nog bedankt voor je bericht. Beeware ziet er ook goed uit. Ben even gestopt met Kivy i.v.m. tijdgebrek. Was wel een leuk project om Flask op mijn OnePlus One met Ubuntu Touch te laten werken. Groeten, Peter
Muchas gracias por el blog, pero tienes publicado el código del blog?
Neueste
- Verwendung von Ingress für den Zugriff auf RabbitMQ auf einem Microk8s -Cluster
- Einfache Videogalerie mit Flask, Jinja, Bootstrap und JQuery
- Grundlegende Auftragsplanung mit APScheduler
- Ein Datenbankschalter mit HAProxy und der HAProxy Runtime API
- Docker Swarm rolling updates
- Ausblenden der Primärschlüssel der Datenbank UUID Ihrer Webanwendung
Meistgesehen
- PyInstaller und Cython verwenden, um eine ausführbare Python-Datei zu erstellen
- Verkürzung der Seitenreaktionszeiten einer Flask SQLAlchemy Website
- Verwendung von Pythons pyOpenSSL zur Überprüfung von SSL-Zertifikaten, die von einem Host heruntergeladen wurden
- Verbindung zu einem Dienst auf einem Docker -Host von einem Docker -Container aus
- Verwendung von UUIDs anstelle von Integer Autoincrement Primary Keys mit SQLAlchemy und MariaDb
- SQLAlchemy: Verwendung von Cascade Deletes zum Löschen verwandter Objekte