URLها و آدرسی دهی در جنگو

جنگو

سلام

در این مرحله قصد داریم تا با کلیک روی نام بورد‌ها در صفحۀ اصلی، تاپیک‌های مختلف از آن بورد نمایش داده شود.

برای اینکار باید فایل py از فولدر لیبوگرام را ویرایش کنیم.

(نکتۀ مهم اینکه تغییرات بالا باعث ایجاد خطا در جنگو می شود و عادی است. بنابراین در این مرحله نمی توان پروژه را اجرا کرد.)

بخش URLها یکی از مهمترین مفاهیم در جنگوست. یک برنامه ممکن است از تعداد زیادی URL تشکیل شده باشد که این آدرس‌ها درون فایل py قرار دارند. اما برای شروع باید آدرس همین فایل را هم به جنگو معرفی کنیم. به این فایل root URLconf می گویند و مسیر آن در فایل settings.py قرار دارد.

(به صورت پیش فرض این آدرس تنظیم شده و تنها در صورت لزوم نیاز به تغییر دارد.)

زمانی که کاربر یک آدرس را وارد می کند، جنگو به فایل py می‌رود و اولین آدرسی که با آن هم‌خوانی داشته باشد را انتخاب می کند. سپس از روی آدرس و از پارمترهای تابع url به سراغ فایل viewای می رود که به عنوان دومین پارامتر در تابع url تنظیم شده و در صورتی که آدرس را پیدا نکند خطای 404 می دهد. ساختار تابع url به این شکل است:

توضیحات:

  • regex: ریجکس یا همان regular expression برای تطبیق الگوهای URL به string است. ضمناً ریجکس‌ها شامل پارامترهای GET یا POST نمی‌شوند. یعنی در آدرس http://127.0.0.1:8000/boards/?page=2 صرفاً بخش مربوط به /boards/ پردازش می شود.
  • view: از این تابع برای تطبیق درخواست‌های کاربر با URLها استفاده می شود. همینطور می شود در آن از توابع conf.urls.include استفاده کرد. از این توابع برای فایل‌های urls.py که در محل دیگری قرار دارند، استفاده می‌شود. (بعداً توضیحات بیشتری ارائه می شود.)
  • Kwargs: برای ارسال ورودی‌ها به ویوی نهایی استفاده می شود. از این مورد برای اختصاصی‌سازیِ ویوهای reusable استفاده می شود که البته معمولاً کاربردی ندارد.
  • Name: یک شناسۀ یکتا برای URLهاست. با این کار به سادگی و صرفاً با تغییر ریجکس می توانیم یک آدرس را در تمام پروژه تغییر دهیم.

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی: URLهای ابتدایی و ساده

مطلب قبلی:معرفی Django Admin

بدون دیدگاه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
ویوی تکمیل بازیابی پسورد

سلام ساخت فایل قالب: templates/password_reset_complete.html {% extends ‘base_accounts.html’ %} {% block title %}Password changed!{% endblock %} {% block content %} <div class=”row justify-content-center”> <div class=”col-lg-6 col-md-8 col-sm-10″> <div class=”card”> <div class=”card-body”> <h3 class=”card-title”>Password changed!</h3> <div class=”alert alert-success” role=”alert”> You have successfully changed your password! You may now proceed to log …

جنگو
ویوی تأیید بازیابی پسورد

سلام نوشتن فایل قالب به شکل زیر: templates/password_reset_confirm.html {% extends ‘base_accounts.html’ %} {% block title %} {% if validlink %} Change password for {{ form.user.username }} {% else %} Reset your password {% endif %} {% endblock %} {% block content %} <div class=”row justify-content-center”> <div class=”col-lg-6 col-md-8 col-sm-10″> <div …

جنگو
ویوی شروع بازیابی پسورد

سلام نوشتن فایل قالب به ترتیب زیر: templates/password_reset_done.html {% extends ‘base_accounts.html’ %} {% block title %}Reset your password{% endblock %} {% block content %} <div class=”row justify-content-center”> <div class=”col-lg-4 col-md-6 col-sm-8″> <div class=”card”> <div class=”card-body”> <h3 class=”card-title”>Reset your password</h3> <p>Check your email for a link to reset your password. If …

هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.