2013-02-10 24 views
15

क्या किसी ने प्रमाणीकरण के लिए Flask-Security एक्सटेंशन का उपयोग किया है? मैं काम करने के लिए रजिस्टर दृश्य कैसे प्राप्त करूं?फ्लास्क-सुरक्षा रजिस्टर दृश्य का उपयोग कैसे करें?

http://packages.python.org/Flask-Security/customizing.html

मैं ऊपर से जोड़ने के लिए चर्चा करते हुए कर रहा हूँ।

@app.route('/register', methods=['GET']) 
def register(): 
    return render_template('security/register_user.html') 

मैं डिफ़ॉल्ट कक्षा का विस्तार नहीं करना चाहता, मैं बस अपनी साइट लेआउट में डिफ़ॉल्ट पंजीकरण दृश्य लपेटना चाहता हूं इसलिए मैंने ऐसा किया।

{% extends "layout.html" %} 
{% block title %}upload{% endblock %} 
{% block body %} 

{% from "security/_macros.html" import render_field_with_errors, render_field %} 
{% include "security/_messages.html" %} 
<h1>Register</h1> 
<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form"> 
{{ register_user_form.hidden_tag() }} 
{{ render_field_with_errors(register_user_form.email) }} 
{{ render_field_with_errors(register_user_form.password) }} 
{% if register_user_form.password_confirm %} 
    {{ render_field_with_errors(register_user_form.password_confirm) }} 
{% endif %} 
{{ render_field(register_user_form.submit) }} 
</form> 
{% include "security/_menu.html" %} 

{% endblock %} 

और मुझे निम्न त्रुटि मिल रही है?

werkzeug.routing.BuildError 
BuildError: ('security.register', {}, None) 
+0

इसके मुद्रण की गलती है जब आप यहां पोस्ट लेकिन आपके विचार समारोह हो सकता है "रजिस्टर" के बजाय "regsiter" के रूप में टाइप किया गया है। – codegeek

+0

क्षमा करें कि मैंने इसे लिखने के दौरान केवल एक टाइपो बनाया था .... –

उत्तर

0

मैं वास्तव में कुप्पी के सुरक्षा उपयोग नहीं किया है, लेकिन तथ्य यह है कि Builderror कुप्पी एक यूआरएल के लिए security.register देखने को नहीं बांध सकता करने के लिए बात कर रहा है। सुरक्षा ब्लूप्रिंट का नाम है। तो क्या मैं सुझाव दे सकता हूं कि आप दृश्य को निम्नानुसार कॉल करने का प्रयास करें। App.route के बजाय, security.route का उपयोग करें।

@security.route('/register', methods=['GET']) 
def register(): 
    return render_template('security/register_user.html') 
+0

कोई भाग्य नहीं, यह मुझे टाइपरर देता है: 'noneType' ऑब्जेक्ट कॉल करने योग्य नहीं है –

29

आपको दृश्य बनाने की आवश्यकता नहीं है। फ्लास्क-सुरक्षा में एक डिफ़ॉल्ट एक शामिल है। आप बस अपनी कुप्पी एप्लिकेशन config में यह सक्षम करना होगा:

app = Flask(__name__) 
app.config['SECURITY_REGISTERABLE'] = True 
इस के साथ

, '/ रजिस्टर' मार्ग काम करना चाहिए।
URL बदल अन्य विन्यास मूल्य नहीं है अगर वांछित:

app.config['SECURITY_REGISTER_URL'] = '/create_account' 

अन्य कुप्पी के सुरक्षा कॉन्फ़िगरेशन जानकारी यहां पाया जा सकता: http://pythonhosted.org/Flask-Security/configuration.html

+1

इस उत्तर ने मुझे फ़ॉर्म को काम करने में मदद की, लेकिन पूर्ण फ्लास्क और अपने जैसे पायथन नए शौक: आपको अपने ऐप में सुरक्षा को पहले से जोड़ना होगा। यहां देखें: http://pythonhosted.org/Flask-Security/quickstart.html मैं/रजिस्टर/एंडपॉइंट को सक्षम करने की कोशिश कर रहा था लेकिन यह कभी काम नहीं करता क्योंकि मैंने कभी भी अपने सुरक्षा उदाहरण में प्रवेश नहीं किया है। – lawicko

+0

समाधान के लिए धन्यवाद। इसने मेरी समस्या हल कर दी है, लेकिन मुझे एक अलग त्रुटि संदेश प्रस्तुत किया जा रहा था। अगर मैं भविष्य में Googlers की मदद करता हूं तो मैं इसे यहां छोड़ दूंगा - और उम्मीद है कि मैंने इसे ट्रैक करने का प्रयास करने के समय बर्बाद कर दिया है ... werkzeug.routing.buildError: एंडपॉइंट 'security.register' के लिए यूआरएल नहीं बना सका क्या आपका मतलब 'security.login' है? – Bletch