Skip to content

Django - Webframework

Python3
  • Django ist ein Webframework was auf Python basiert. Was liegt also näher, als das jetzt mal auszuprobieren, wo ich ein wenig Python kenne. Ich kann mich noch gut erinnern, wie ich das mal vor ca. zwei Jahren ausprobieren wollte, bin ich kläglich gescheitert. Grund waren damals mangelnde Python Kenntnisse. Aktuell sollte die Kenntnisse reichen um das zu mindestens mal zu testen.

    Es gibt zwei gute Tutorials

    Das war jetzt nicht so schwer, bis auf die Tatsache das die immer alle lokal ausprobieren. Das mache ich immer erst, wenn ich weiß wie das alles funktioniert. Vorher teste ich auf meinem ROCKPro64 und wenn ich den versaut 😉 habe, wird der neu installiert - fertig!

    Ok, der Webserver mit der Anwendung wird normalerweise auf dem Localhost ausgeliefert.

    (myvenv) frank@debian:~/djangogirls$ python manage.py runserver
    Performing system checks...
    
    System check identified no issues (0 silenced).
    August 29, 2021 - 08:52:38
    Django version 3.2.6, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    

    Nicht so praktisch, wenn ich das von einem Haupt-PC aus erreichen möchte. Es gibt dazu eine Konfigurationsdatei

    nano mysite/settings.py
    

    Darin steht als Standard, das hier.

    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    ALLOWED_HOSTS = []
    

    Wenn DEBUG auf True gesetzt ist und ALLOWED_HOSTS leer, dann wird der "Host" gegen ['localhost', '127.0.0.1', '[::1]'] validiert.

    Wenn ich den Webserver aufrufe, kommt das hier

    098201d9-5489-440e-bf72-a047aa192463-grafik.png

    Diese Ausgabe auf dem Webserver steht dort wegen

    DEBUG = True
    

    das ist natürlich auf einem produktivem Server eine schlechte Idee. Darum auch die Warnung eine Zeile drüber!
    Aber zum Glück, da steht auch die Lösung meines Problemes 🙂

     SECURITY WARNING: don't run with debug turned on in production!
     DEBUG = True
     ALLOWED_HOSTS = ['192.68.3.172']
    

    Man fügt die IP-Adresse hinzu und startet dann den Webserver mit

    (myvenv) frank@debian:~/djangogirls$ python manage.py runserver 0:8000
    Watching for file changes with StatReloader
    Performing system checks...
    
    System check identified no issues (0 silenced).
    August 29, 2021 - 11:37:16
    Django version 3.2.6, using settings 'mysite.settings'
    Starting development server at http://0:8000/
    Quit the server with CONTROL-C.
    

    0:8000 ist eine Abkürzung für 0.0.0.0:8000 Damit ist der Webserver jetzt über die IP-Adresse erreichbar.

    296ab523-d860-4f82-b815-f195209e50fb-grafik.png

  • Restic UI - Documentation

    Restic UI
    1
    0 Stimmen
    1 Beiträge
    206 Aufrufe
    Niemand hat geantwortet
  • Python3 - QT_QPA_PLATFORM

    Python3
    2
    0 Stimmen
    2 Beiträge
    284 Aufrufe
    FrankMF

    Nachdem ich ja mittlerweile schon lange weder auf Cinnamon bin, hatte ich nach einem Update von VSCodium wieder ein anderes Design. Ok, schauen wir rein.

    (venv) frank@frank-MS-7C37:~/restic-ui-public$ env | grep "QT" QT_ACCESSIBILITY=1 QT_QPA_PLATFORMTHEME=qt5ct

    Wenn ich das auf

    QT_QPA_PLATFORMTHEME=gnome3

    ändere, sieht es wie auf meinem Linux Mint Cinnamon Desktop aus.

  • Python3 - PyQt5 Layout

    Python3
    1
    0 Stimmen
    1 Beiträge
    147 Aufrufe
    Niemand hat geantwortet
  • Python3 - String-Operatoren

    Python3
    1
    0 Stimmen
    1 Beiträge
    134 Aufrufe
    Niemand hat geantwortet
  • Python3 - subprocess.Popen

    Python3
    1
    0 Stimmen
    1 Beiträge
    225 Aufrufe
    Niemand hat geantwortet
  • Python3 - JSON

    Python3
    3
    0 Stimmen
    3 Beiträge
    188 Aufrufe
    FrankMF

    ede1a88a-5183-4f85-a602-27650362d532-grafik.png

    Die Backups sollen Namen haben, also habe ich das erweitert. Jetzt sollen diese als Liste rechts angezeigt werden. Das mache ich wie folgt.

    for key in backups: print(backups[key]['name'], key) liste = backups[key]['name'] + " ID: " + key self.listWidget.addItem(liste)

    Mittels des Keys kann ich auf den Namen zugreifen und die Liste damit füllen. Aktuell habe ich noch den Key hinten angefügt, weil ich noch keine Idee habe, wie ich die Backups anders verarbeiten soll. Aber, Stück für Stück. Der Backup-Name wird nach Auswahl in der Statusbar angezeigt. So weit klappt das so wie ich mir das vorstelle. Für heute ist Feierabend 😇

  • Python3 - RegEx für ein LineEdit

    Python3
    2
    0 Stimmen
    2 Beiträge
    153 Aufrufe
    FrankMF

    Gut, Menschen die mich kennen, wissen das IPv6 nicht so mein Spezialgebiet ist. Es hilft aber nichts, auch damit muss man sich beschäftigen 🙂

    Es war etwas schwierig was Passendes zu finden, aber ich denke das hier ist ganz gut. Ob es alle Möglichkeiten bei IPv6 beinhaltet, weiß ich nicht zu 100%.

    Hier eine Seite, wo ich was Passendes gefunden habe.
    https://ihateregex.io/expr/ipv6/

    Code # regex für IPv6 reg_ex = QRegExp('^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$') input_validator = QRegExpValidator(reg_ex, self.lineedit2_ipv6) self.lineedit2_ipv6.setValidator(input_validator)

    Ein paar Test von mir ergaben, das es so aussieht als wenn es funktioniert 🙂

  • Wichtige Links

    Angeheftet Python3
    1
    0 Stimmen
    1 Beiträge
    170 Aufrufe
    Niemand hat geantwortet