Django

2010-02-19 9 views
11

में एक सत्र बनाएं अभी तक Django के लिए प्रलेखन बहुत तकनीकी रहा है। मैं इसमें सत्र कैसे बना सकता हूं और इसमें चर बदल सकता हूं या इससे चर प्राप्त कर सकता हूं? मैं Django ढांचे के लिए नया हूँ, इसलिए दस्तावेज़ीकरण बहुत तकनीकी क्यों है। सत्र मेरे 'आखिरी कदम' हैं।Django

उत्तर

23

मान लिया जाये कि आप डेटाबेस आधारित सत्र (Django भी फ़ाइल आधारित सत्र कैश आधारित सत्र प्रदान करता है, और चाहते हैं):

  1. ओपन settings.py और MIDDLEWARE_CLASSES पाते हैं। सूची में 'django.contrib.sessions.middleware.SessionMiddleware' जोड़ें।
  2. उसी फ़ाइल में INSTALLED_APPS खोजें और वहां 'django.contrib.sessions' जोड़ें।
  3. कमांड लाइन से manage.py syncdb चलाएं।

आरंभिक सेटअप के बाद आप अनुरोधों के बीच जानकारी संग्रहीत करने के लिए अपने विचारों में request.session का उपयोग कर सकते हैं।

उदाहरण के लिए इस जानकारी को संग्रहीत होगा:

request.session['name'] = 'Ludwik' 

और आप इसे के रूप में easly प्राप्त कर सकते हैं:

print request.session['name'] 

या

if request.session['name'] == 'Ludwik': 
    print 'you are awesome!' 

अन्य बातों के लिए आप के साथ ऐसा कर सकता है request.session ऑब्जेक्ट the documentation देखें।

4

लुडविक का जवाब जाने का तरीका है, लेकिन यदि आप Django की दुनिया में एक gentler परिचय चाहते हैं, (the (free) Django Book) एक पढ़ा जाना चाहिए। Chapter 15 सत्रों से संबंधित है।

0

MIDDLEWARE_CLASSES होना चाहिए -

'django.contrib.sessions.middleware.SessionMiddleware' 

INSTALLED_APPS होना चाहिए -

'django.contrib.sessions' 

बदलें हमारे प्रवेश दृश्य हमारे उपयोगकर्ता नाम कुकी सर्वर साइड को बचाने के लिए -

def login(request): 
    username = 'not logged in' 

    if request.method == 'POST': 
    MyLoginForm = LoginForm(request.POST) 

    if MyLoginForm.is_valid(): 
     username = MyLoginForm.cleaned_data['username'] 
     request.session['username'] = username 
    else: 
     MyLoginForm = LoginForm() 

    return render(request, 'loggedin.html', {"username" : username} 

के लिए FormView दृश्य बनाते हैं लॉगिन फॉर्म, जहां कुकी सेट होने पर हम फॉर्म प्रदर्शित नहीं करेंगे -

def formView(request): 
    if request.session.has_key('username'): 
     username = request.session['username'] 
     return render(request, 'loggedin.html', {"username" : username}) 
    else: 
     return render(request, 'login.html', {}) 

परिवर्तन url.py फ़ाइल यूआरएल को बदलने के लिए तो यह हमारे नए दृश्य के साथ जोड़े -

from django.conf.urls import patterns, url 
from django.views.generic import TemplateView 

urlpatterns = patterns('myapp.views', 
    url(r'^connection/','formView', name = 'loginform'), 
    url(r'^login/', 'login', name = 'login')) 
    url(r'^logout/', 'logout', name = 'logout'), 

एक सरल लॉगआउट राय यह है कि हमारे कुकी मिटा देता है बनाएँ।

def logout(request): 
    try: 
     del request.session['username'] 
    except: 
     pass 
    return HttpResponse("<strong>You are logged out.</strong>")