Wenn Sie mit Django ein Portfolio oder eine Prototypanwendung erstellt haben, ist das kostenlose Hosten auf Vercel nur ein paar Klicks und ein kleines Stück Code entfernt. Früher war Heroku ein Lebensretter, aber seit 2022 bietet es kein kostenloses Hosting mehr an.
Mit Vercel können Sie Ihre App kostenlos direkt von GitHub bereitstellen, und jeder kann von überall darauf zugreifen. So gehen Sie vor.
Konfigurieren Sie Ihre Django-App für Vercel
Sie müssen einige Aspekte Ihres Django-Projekts konfigurieren, bevor Sie es auf Vercel bereitstellen können.
Konfigurieren Sie die vercel.json-Datei
Zuerst müssen Sie eine vercel.json-Datei im Stammordner Ihres Projekts erstellen, um Vercel auf die Webserver-Gateway-Schnittstelle (WSGI) Ihrer App zu verweisen:
{
"baut": [
{
"src": "django_app_name/wsgi.py",
"use": "@vercel/python"
}
],
"routen": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}
Ersetzen django_app_name durch den Namen Ihrer Django-App (derselbe wie der Ordner, der die settings.py Datei).
Refaktorieren Sie die wsgi.py-Datei
Vercel erkennt die nicht Anwendung Variable in der Datei wsgi.py. Glücklicherweise besteht die einzige Änderung, die Sie vornehmen müssen, um dieses Problem zu lösen, darin, die zu bestehen Anwendung Variable in Vercel als App.
Refaktorieren Sie also Ihre App wsgi.py Datei wie gezeigt:
importieren os
aus django.core.wsgi importieren get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
Anwendung = get_wsgi_application()
Anwendung = Anwendung
Verbinden Sie sich mit einer Remote-Datenbank
Wenn Ihre App Datenbankunterstützung benötigt, verwenden Sie die Bereitstellung von Vercel oder richten Sie irgendwo eine externe Datenbankinstanz ein. Zum Glück gibt es viele kostenlose PostgreSQL-Datenbank Optionen im Internet. Du kannst auch eine Verbindung zu einem MongoDB-Cluster herstellen wenn Sie eine NoSQL-Datenbank bevorzugen.
Wir bleiben hier jedoch beim PostgreSQL-Datenbankcluster von Railway, da es ein Startguthaben bietet und einfach einzurichten ist.
So richten Sie eine PostgreSQL-Instanz auf Railway ein:
- Besuche den Eisenbahn Website, um ein Konto zu erstellen.
- Klicken Starten Sie ein neues Projekt.
- Wählen Stellen Sie PostgreSQL bereit.
- Drücke den Postgres Banner, um Ihre Datenbankvariablen und Verbindungszeichenfolgen anzuzeigen.
- Gehen Sie zum Variablen Tab. Dann kopieren und einfügen DATABASE_URL string in einen Texteditor, um sie zu formatieren. Stellen Sie sicher, dass Sie die Platzhalter in der ersetzen DATABASE_URL string mit den entsprechenden Variablenwerten.
- Kopieren Sie die verbleibenden Variablen und richten Sie Ihre Datenbank in Ihrem Django ein settings.py Datei, wie unten gezeigt. Denken Sie daran, die Variablennamen durch die entsprechenden Werte zu ersetzen, die von Railway bereitgestellt werden.
DATENBANKEN = {
'Standard': {
'MOTOR': 'django.db.backends.postgresql',
'URL': 'DATABASE_URL',
'NAME': 'PGDATENBANK',
'BENUTZER': 'PGUSER',
'PASSWORT': 'PGPASSWORT',
'GASTGEBER': 'PGHOST',
'HAFEN': PGPORT,
}
}
In Betracht ziehen Maskieren dieser geheimen Variablen Verwendung einer .env Datei, um die Sicherheit Ihrer Django-App zu verbessern. Außerdem können Sie mit Vercel Ihre Umgebungsvariablen während der Bereitstellung auflisten.
Also, sobald Sie die verwenden os.getenv -Methode ruft Python die angegebene Variable aus der Vercel-Hosting-Umgebung ab. Somit wird Ihr Datenbank-Setup zu:
DATENBANKEN = {
'Standard': {
'MOTOR': 'django.db.backends.postgresql',
'URL': os.getenv('POSTGRES_URL'),
'NAME': os.getenv('PGNAME'),
'BENUTZER': os.getenv('PGUSER'),
'PASSWORT': os.getenv('POSTGRES_PASSWORD'),
'GASTGEBER': os.getenv('PGHOST'),
'HAFEN': os.getenv('PGPORT),
}
}
Stellen Sie Ihr GitHub-Repository auf Vercel bereit
Der zweite Teil dieses Prozesses besteht darin, Vercel auf Ihr Repository auf GitHub zu verweisen. Sobald Sie dies getan haben, ist Ihre App live und jeder kann über eine von Vercel generierte URL auf Ihre Website zugreifen.
Erstellen Sie eine Anforderungsdatei
Vercel versucht, die Abhängigkeiten Ihres Projekts innerhalb der zu finden und zu installieren Anforderungen.txt Datei während der Bereitstellung. Denken Sie jedoch daran, dass das Schreiben von Abhängigkeiten von a virtuelle Umgebung hinein Anforderungen.txt ist immer einfacher als aus dem globalen Raum.
Erstellen Sie mit dem folgenden Befehl über das Terminal eine requirements.txt-Datei in Ihrem Projektstammordner:
pip freeze > requirements.txt
Verbinden Sie Ihr Repository mit Vercel
Vercel funktioniert, indem es Änderungen in einem Repository verfolgt. Der erste Bereitstellungsschritt besteht also darin, Pushen Sie Ihren Code auf GitHub oder jedes andere Versionskontrollsystem, das für Sie am besten funktioniert. Ignorieren Sie diesen Schritt, wenn sich Ihr Code bereits auf GitHub befindet.
Um mit Vercel zu beginnen:
- Melden Sie sich an Vercel-Website mit Ihrem GitHub-Konto. Befolgen Sie die Anweisungen auf dem Bildschirm, um die Kontoregistrierung abzuschließen und loszulegen.
- Wählen Sie als Nächstes die Option Hobby-Konto aus, um Vercel kostenlos zu nutzen.
- Sobald Sie angemeldet sind, klicken Sie auf Neue hinzufügen. Dann klick Projekt.
- Klicken Sie anschließend auf GitHub-Konto hinzufügen von dem Git-Repository importieren Abschnitt. Oder Sie können klicken Wechseln Sie den Git-Anbieter wenn Sie neben GitHub eine andere Versionskontrolle verwenden.
- Klicken Alle Depots. Dann klick Installieren.
- Wählen Sie Ihr GitHub-Konto aus der Liste aus.
- Vercel erkennt Ihre Repositories automatisch. Klicken Importieren rechts neben demjenigen, der Ihr Django-Projekt trägt.
- Drücke den Umgebungsvariablen Dropdown, um Ihre Umgebungsvariablen auf Vercel aufzulisten. Diese können den geheimen Schlüssel Ihrer App und Datenbank-Verbindungszeichenfolgen enthalten. Füllen Sie die aus Name Feld mit dem Variablennamen. Geben Sie dann seinen Wert in die ein Wert Feld.
- Klicken Hinzufügen um ein neues Feld zu erstellen und andere Umgebungsvariablen hinzuzufügen.
- Abschließend klicken Einsetzen. Ihre App sollte in wenigen Augenblicken live sein. Klicken Sie auf die URL rechts neben dem Websymbol, um Ihre neue Website aufzurufen.
Nach der Bereitstellung verfolgt Vercel nachfolgende Änderungen, die an den Hauptzweig übertragen werden, um sie in der Live-Version widerzuspiegeln. Daher müssen Sie Ihre Änderungen nur auf GitHub bereitstellen, um Ihre App in Echtzeit zu aktualisieren.
Während Vercel automatisch eine URL für Ihre Django-Website generiert, können Sie auch einen benutzerdefinierten Domänennamen verwenden. Also bedenke Kauf eines Domainnamens von einem Registrar wenn du einen brauchst.
Hosten Sie Ihre Django-Website kostenlos
Manchmal braucht es mehr als ein GitHub-Repository, um potenzielle Arbeitgeber und Kunden zu beeindrucken. Während ein starkes und kohärentes Repository Ihre Kompetenz zeigt, präsentiert Sie die Anzeige einer Live-Version Ihres Portfolios oder Projektprototyps als Leistungsträger.
Das Hosten eines Projekts, das keine Einnahmen generiert, ist oft entmutigend. Aber zum Glück ist Vercel einer der wenigen kostenlosen Webhosting-Dienste. Und Sie haben gesehen, wie Sie Ihr Django-Projekt kostenlos auf der Plattform bereitstellen. Obwohl die generierte URL unordentlich aussieht, können Sie sie in die ReadMe Ihres Projekts auf GitHub einfügen, um anderen zu zeigen, wie Ihre Kreation funktioniert.