0Pricing
Django Academy · درس

قراءة request.session وكتابته

حفظ قيم مثل سلة التسوق واسترجاعها

قراءة request.session وكتابته درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

The Session as a Dict

Think of request.session as a dictionary that follows one visitor. You read and write keys exactly like any Python dict.

Writing a Value

To remember something, just assign a key. Here we save a cart list so the visitor keeps their items across pages.

def add_to_cart(request):
    request.session['cart'] = [1, 2, 3]
    return redirect('cart')

Reading a Value

Read a key back the dictionary way. Using get with a default avoids a crash when the key has not been set yet.

cart = request.session.get('cart', [])

Updating Stored Data

To grow a cart, read it, change the Python object, then assign it back so Django notices the update and saves it.

cart = request.session.get('cart', [])
cart.append(7)
request.session['cart'] = cart

Mark It Modified

When you mutate a nested object in place, set session.modified to True so Django knows it must persist the change.

request.session['cart'].append(7)
request.session.modified = True

Deleting a Key

Remove a single value with del, just like a normal dictionary, to forget one piece of session state.

del request.session['cart']

Checking for a Key

Use the in operator to test whether a value exists before you read it, which keeps your view logic clean.

if 'cart' in request.session:
    show_cart()

What Can You Store

Session values must be JSON serializable by default. Lists, dicts, strings, and numbers are fine; model instances are not.

Clearing Everything

To wipe all session data for a visitor, call flush. It deletes the data and rotates the session key, handy at logout.

request.session.flush()

Set Expiry Per Session

Override the global timeout for one visitor with set_expiry. Passing zero ends the session when the browser closes.

request.session.set_expiry(0)

Saves Happen For You

You rarely call save yourself. The middleware writes the session at the end of each request whenever you changed it.

Quick Check

You changed a list already stored in the session in place. What must you do?

Recap

You used request.session like a dict: write, read with get, delete, flush, and set expiry. Remember to flag in-place edits as modified. Next up, the messages framework. 💬

الأسئلة الشائعة

هل درس «قراءة request.session وكتابته» مجاني؟

نعم — نص درس «قراءة request.session وكتابته» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «قراءة request.session وكتابته»؟

حفظ قيم مثل سلة التسوق واسترجاعها تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «قراءة request.session وكتابته»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إطار الجلسات
  2. قراءة request.session وكتابته
  3. إطار الرسائل
  4. ملفات Cookies مقابل الجلسات
← العودة إلى Django Academy