क्या url_for
ब्लूप्रिंट में काम करता है?ब्लूप्रिंट्स पर url_for का उपयोग
/flaskapp
/runserver.py (from server import app; app.run(debug=True))
/server
/__init__.py (app = Flask(__name__))
/pages
/__init__.py ('pages' blueprint)
/users
/__init__.py ('users' blueprint)
server/__init__.py
में
:
server/pages/__init__.py
में
from server.pages import pages
from server.users import users
app = Flask(__name__)
app.register_blueprint(pages)
app.register_blueprint(users)
:
server/users/__init__.py
में
pages = Blueprint('pages', __name__)
@pages.route('/')
def index(): return '<h1>Index</h1>'
:
users = Blueprint('users', __name__)
@users.route('/login')
def login():
...
return redirect(url_for('pages.index'))
^^^^^^^^^^^^^^^^^^^^^^
url_for
कॉल BuildError: ('pages.index', {}, None)
'pages.index'
पर जाने का तरीका क्या होगा?
(मैं मॉड्यूल आयात करने की कोशिश की, लेकिन बात नहीं बनी)
मैंने फ्लास्क 0.10.1 के साथ अपना उदाहरण आजमाया है और समस्या को फिर से बनाने में असमर्थ हूं। ऐसा प्रतीत होता है जैसे इसे काम करना चाहिए, शायद आपने प्रश्न से बाहर कुछ कोड छोड़ दिया है जो वास्तव में महत्वपूर्ण है? यदि संभव हो, तो एक पायथन फ़ाइल में समस्या को फिर से बनाने का प्रयास करें और उस पायथन फ़ाइल को पोस्ट करें। साथ ही, अपने app.debug से पहले, कंसोल 'app.url_map' पर प्रिंट करें, जो एंडपॉइंट्स के लिए सभी नियमों को सूचीबद्ध करेगा। –