2012-06-13 6 views
21

Ich werde mit Kolben eine Webanwendung erstellen, und ein Teil der Anwendung wird eine Subdomain umfassen (z. B. user1.appname.org).Dynamische Subdomain-Handhabung in einer Webanwendung (Flask)

Ich bin mir nicht sicher, wie diese Subdomains in der Flask-Konfiguration dynamisch erstellt werden oder wie sie auf einem Produktionsserver bereitgestellt werden.

Was ist der beste Weg, dies zu tun?

Antwort

34

Alle Routing-Konstrukte von Flask unterstützen das Schlüsselwortargument subdomain (dies beinhaltet die Unterstützung von Routenvariablen).

+1

Wird diese Arbeit auf dem Testserver localhost Flask läuft? –

+1

Ich frage mich auch, ob es eine Möglichkeit gibt, das lokal zu testen. Ich habe versucht, mehrere Einträge zu meiner Hosts-Datei hinzuzufügen. Dies scheint nicht zu funktionieren. –

+0

@sean Wie würden Sie etwas Ähnliches für benutzerdefinierte Domains tun? Ein Benutzer meldet sich bei subdomain.example.com an und fügt dann eine benutzerdefinierte Domain wie www.mygreatsite.com hinzu? Wie würde ich den Zugriff auf diese benutzerdefinierte Domäne in einer Flask-Route behandeln? – Raj

38

Um Sean Vieras Beitrag zu ergänzen, müssen Sie auch die Konfigurationsvariable SERVER_NAME festlegen.

Dokumentation von http://flask.pocoo.org/docs/config/

Der Name und die Portnummer des Servers. Erforderlich für die Unterstützung von Subdomains (z. B .: 'myapp.dev:5000') Beachten Sie, dass localhost Subdomains nicht unterstützt, daher hilft das Einstellen auf "localhost" nicht. Wenn Sie SERVER_NAME ebenfalls standardmäßig festlegen, wird die URL-Generierung ohne eine Anforderung context, aber mit einem Anwendungskontext aktiviert.

Um zu testen, vor Ort müssen Sie Einträge zum hosts Datei hinzuzufügen, wie folgt aus:

127.0.0.1  cvshark.local 
127.0.0.1  robert.cvshark.local 
127.0.0.1  www.cvshark.local 
+0

Ich verstehe das Beispiel nicht, das sie geben: 'myapp.dev:5000'. Ist myapp die Subdomain und dev der Hostname? – compie

+0

@compie Ja, das ist richtig. –

+1

Dies ist die bessere Antwort; es geht über die Dokumentation hinaus und löst die kniffligeren Sachen. – gwg

Verwandte Themen