Ich habe kürzlich meine eigene Django-Anwendung für die Produktion bereitgestellt. Die Website heißt videiro.com und wurde in Django + HTML/CSS/JS + Tailwind entwickelt.
Aufstellen
Ich verwende einen Debian 12-Server, der meine Anwendung über Cloudflare-Tunnel verfügbar macht. Alle statischen Dateien werden über Nginx bereitgestellt und das Django-Projekt wird von Gunicorn ausgeführt.
In dieser Anleitung zeige ich dir, wie ich das einrichte.
Vorbereitung des Django-Projekts
Als erstes müssen Sie die Datei „settings.py“ öffnen und Folgendes ändern
Debug = False ALLOWED_HOSTS = ['yourdomain.tld'] CSRF_COOKIE_SECURE = True CSRF_TRUSTED_ORIGINS = [ 'yourdomain.tld', ]
Sie sollten den SECRET_KEY auch in eine lange zufällige Zeichenfolge ändern, die Sie niemals mit jemandem teilen sollten.
Danach erstellen Sie eine neue Datei mit dem Namen .gitignore und fügen Folgendes ein:
db.sqlite3 *.pyc
Dadurch wird sichergestellt, dass die Datenbank nicht auf unseren Server hochgeladen wird und dass auch keine Pyc-Dateien hochgeladen werden.
Jetzt können Sie Ihr Projekt in ein neues Github-Repository (oder Gitea-Repository) hochladen. Wenn Sie nicht möchten, dass jeder Zugriff auf Ihren Quellcode hat, stellen Sie sicher, dass das Repository als privat festgelegt ist.
Wenn Sie sicherstellen möchten, dass Ihr Quellcode privat bleibt, empfehle ich Ihnen, eine selbstgehostete Gitea-Instanz einzurichten. Lesen Sie „Selbsthosten Sie Ihre eigene Gitea-Instanz – selbstgehostete, leichte Github-Alternative“, um zu erfahren, wie das geht.
git init git branch -M main git add . git commit -m "initial commit" git remote add origin https://... git push -u origin main
Da Sie nun fertig sind, sollten Sie sich bei Ihrem Server anmelden
Server-Setup
Bevor Sie etwas konfigurieren, stellen Sie sicher, dass Sie keine SSH-Anmeldungen mit einem Passwort zulassen. Folgen Sie „SSH mit schlüsselbasierter Authentifizierung sichern“, um Ihren Server vor solchen Angriffen zu schützen.
Melden Sie sich bei Ihrem Server an
ssh user@server.ip
Stellen Sie sicher, dass Ihre Pakete den Daten entsprechen
sudo apt update && sudo apt upgrade
Jetzt Python, Pip, Git und Nginx installieren
sudo apt install python3 python3-pip git nginx
Klonen Sie nun Ihr Projekt in Ihr Home-Verzeichnis.
git clone https://... cd my-project
Sobald Sie drin sind, installieren Sie Folgendes:
pip install django django-crispy-forms whitenoise
Versuchen Sie nun, das Projekt auszuführen:
python3 manage.py runserver
Wenn Sie eine Fehlermeldung erhalten, dass ein Paket fehlt, installieren Sie es und führen Sie es erneut aus.
Gunicorn konfigurieren
Jetzt richten wir Gunicorn ein
Installieren Sie es zuerst
pip install gunicorn
Erstellen Sie nun mit Ihrem bevorzugten Texteditor eine neue Datei namens gunicorn.service:
sudo vim /etc/systemd/system/gunicorn.service
Und fügen Sie Folgendes ein:
[Unit] Description=gunicorn daemon After=network.target [Service] User=YOURUSER Group=www-data WorkingDirectory=/home/YOURUSER/PROJECT ExecStart=/path/to/gunicorn --access-logfile - --workers 3 --bind 127.0.0.1:8000 PROJECTNAME.wsgi:application [Install] WantedBy=multi-user.target
Ändern Sie YOURUSER in Ihren Benutzer.
So finden Sie den Weg zum Gunicorn Run:
which gunicorn
Und Ihr Projektname ist der Name des Ordners in Ihrem Projekt, der die Datei „settings.py“ enthält.
Führen Sie nun die folgenden Befehle aus, um Gunicorn zu starten und zu aktivieren (Start beim Booten)
sudo systemctl daemon-reload sudo systemctl start gunicorn.service sudo systemctl enable gunicorn.service
Wenn Sie nun zu 127.0.0.1:8000 gehen, sollte Ihr Projekt laufen.
Aber wir waren noch nicht fertig
Nginx einrichten
Jetzt müssen wir unsere statischen Inhalte über Nginx bereitstellen.
Erstellen Sie zunächst eine neue Nginx-Konfigurationsdatei mit Ihrem bevorzugten Texteditor:
sudo vim /etc/nginx/sites-available/PROJECT
Ändern Sie PROJEKT nach Ihren Wünschen
Fügen Sie nun den folgenden Inhalt ein:
server { listen 80; server_name YOURDOMAIN; location /static/ { alias /var/www/staticfiles/; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Ändern Sie einfach YOURDOMAIN in die Domain, auf der dies gehostet wird.
Erstellen Sie einen symbolischen Link, um Ihre Website zu aktivieren:
sudo ln -s /etc/nginx/sites-available/PROJECT /etc/nginx/sites-enabled/
Nginx starten und aktivieren:
sudo systemctl start nginx sudo systemctl enable nginx
Richten Sie statische Dateien ein
Das erste, was Sie tun müssen, ist, in Ihr (Django-)Projekt zu wechseln
cd project
Führen Sie nun den folgenden Befehl aus:
python3 manage.py collectstatic
Dadurch wird ein neuer Ordner namens „staticfiles“ erstellt
Um nun die statischen Dateien einzurichten, haben wir zwei Möglichkeiten:
- Ändern Sie den Benutzer in /etc/nginx/nginx.conf zu Ihrem Benutzer (weniger sicher)
- Kopieren Sie die statischen Dateien nach /var/www/ (sicherer)
Ich werde die 2. Option machen:
Erstellen Sie zunächst eine neue Datei namens staticfiles in /var/www
sudo mkdir -p /var/www/staticfiles
Kopieren Sie nun alle statischen Dateien aus Ihrem Projekt dorthin:
sudo cp staticfiles/* /var/www/staticfiles
Jetzt cd in /var/www
cd /var/www
Ändern Sie den Besitz aller Dateien
sudo chown www-data:www-data staticfiles sudo chown www-data:www-data staticfiles/*
Starten Sie den Nginx-Dienst neu:
sudo systemctl restart nginx
Jetzt gehen Sie zu:
127.0.0.1
Sie sollten sehen, dass Ihre Website mit allen bereitgestellten statischen Dateien läuft!
Offenlegung über Cloudflare-Tunnel
Jetzt machen Sie Ihre Website öffentlich zugänglich.
Dazu benötigen Sie ein Cloudflare-Konto und eine auf Cloudflare verweisende Domain.
Gehen Sie zunächst zum Zero Trust Dashboard
Klicken Sie unter Netzwerke auf Tunnel und dann auf Tunnel erstellen
Nach der Erstellung sollten Sie einen Connector installieren und ausführen. Befolgen Sie die Anweisungen auf der Seite für Ihr spezifisches Setup.
Nachdem der Connector ausgeführt wird, sollten Sie auf die Registerkarte „Öffentlicher Hostname“ klicken und einen öffentlichen Hostnamen hinzufügen.
Jetzt sollten Sie etwa Folgendes sehen:
Füllen Sie die Informationen so aus, wie ich sie angegeben habe. Der Diensttyp sollte HTTP sein und die URL sollte 127.0.0.1:80 oder localhost:80
seinWenn Sie nun zu der von Ihnen angegebenen Domain gehen, sollte Ihre App betriebsbereit sein.
Herzlichen Glückwunsch!
Wenn Ihnen dieser Beitrag gefallen hat und Sie meine (größtenteils unbezahlte) Arbeit unterstützen möchten, können Sie hier spenden.
Abonnieren Sie meinen kostenlosen Newsletter!
Hier beitreten
Das obige ist der detaillierte Inhalt vonStellen Sie Django in der Produktion bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Python zeichnet sich in Gaming und GUI -Entwicklung aus. 1) Spielentwicklung verwendet Pygame, die Zeichnungen, Audio- und andere Funktionen bereitstellt, die für die Erstellung von 2D -Spielen geeignet sind. 2) Die GUI -Entwicklung kann Tkinter oder Pyqt auswählen. Tkinter ist einfach und einfach zu bedienen. PYQT hat reichhaltige Funktionen und ist für die berufliche Entwicklung geeignet.

Python eignet sich für Datenwissenschafts-, Webentwicklungs- und Automatisierungsaufgaben, während C für Systemprogrammierung, Spieleentwicklung und eingebettete Systeme geeignet ist. Python ist bekannt für seine Einfachheit und sein starkes Ökosystem, während C für seine hohen Leistung und die zugrunde liegenden Kontrollfunktionen bekannt ist.

Sie können grundlegende Programmierkonzepte und Fähigkeiten von Python innerhalb von 2 Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master Control Flow (bedingte Anweisungen und Schleifen), 3.. Verstehen Sie die Definition und Verwendung von Funktionen, 4. Beginnen Sie schnell mit der Python -Programmierung durch einfache Beispiele und Code -Snippets.

Python wird in den Bereichen Webentwicklung, Datenwissenschaft, maschinelles Lernen, Automatisierung und Skripten häufig verwendet. 1) In der Webentwicklung vereinfachen Django und Flask Frameworks den Entwicklungsprozess. 2) In den Bereichen Datenwissenschaft und maschinelles Lernen bieten Numpy-, Pandas-, Scikit-Learn- und TensorFlow-Bibliotheken eine starke Unterstützung. 3) In Bezug auf Automatisierung und Skript ist Python für Aufgaben wie automatisiertes Test und Systemmanagement geeignet.

Sie können die Grundlagen von Python innerhalb von zwei Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master -Steuerungsstrukturen wie wenn Aussagen und Schleifen, 3. Verstehen Sie die Definition und Verwendung von Funktionen. Diese werden Ihnen helfen, einfache Python -Programme zu schreiben.

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Laden Sie Gurkendateien in Python 3.6 Umgebungsbericht Fehler: ModulenotFoundError: Nomodulennamen ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.