2011-09-22 13 views
10

मैं अपनी व्यक्तिगत साइट बनाने के लिए शुरुआती बिंदु के रूप में कमलगिल के flask-appengine-template का उपयोग कर रहा हूं। हालांकि, मैं अपने शीर्ष-स्तरीय डोमेन को विभिन्न सबडोमेन के लिए पोर्टल के रूप में रखना चाहता हूं जो मेरी साइट के विभिन्न वर्गों (अनुप्रयोगों) से मेल खाते हैं।फ्लास्क सबडोमेन रूटिंग?

उदाहरण के लिए, www.spam.com को welcome.html टेम्पलेट पर जाना चाहिए। हालांकि, अंडे .spam.com को साइट के "अंडे" उपधारा या आवेदन के लिए मार्ग होना चाहिए। मैं इसे फ्लास्क में कैसे प्राप्त करूं?

उत्तर

25

कैसे जटिल आपकी साइट या तो आप आप URL registration के माध्यम से अपने उप डोमेन जोड़ सकते हैं हो जाएगा पर निर्भर करता है:

from flask import Flask 

app = Flask(__name__) 

@app.route("/") 
def index(): 
    return "This is the index" 

@app.route("/", subdomain="eggs") 
def egg_index(): 
    return "You have eggs" 

वरना बोतल के Blueprint मॉड्यूल (api docs here) का उपयोग करें।

eggs.py में:

eggs = Blueprint("eggs", __name__, subdomain="eggs") 

# Then you can register URLs here 
@eggs.route("/") 
def index(): 
    "You have eggs" 

फिर, अपने मुख्य routes.py में:

from eggs import eggs 
from flask import Flask 

app = Flask(__name__) 

app.register_blueprint(eggs) 

@app.route("/") 
def index(): 
    return "This is the index" 

याद रखें, सभी बोतल मार्गों वास्तव में werkzeug.routing.Rule के उदाहरण हैं। परामर्श Werkzeug's documentation for Rule आपको कुछ ऐसी चीजें दिखाएगा जो मार्ग कर सकते हैं कि फ्लास्क के दस्तावेज चमकते हैं (क्योंकि यह पहले से ही वेर्कजेग द्वारा दस्तावेज किया गया है)।

+9

अंडो के लिए सबडोमेन समर्थन http://flask.pocoo.org/docs/config/ –

+2

+1 को सक्षम करने के लिए फ्लास्क कॉन्फ़िगरेशन में SERVER_NAME को जोड़ना याद रखें –

+3

@ सेन आप अपने उत्तर में डेसमंड का नोट जोड़ सकते हैं। मुझे ठीक होने से पहले घंटों तक खो गया था। 'app.config ['SERVER_NAME'] = 'example.com: 5000'' – cbron