آموزش Django

آموزش پروژه پروژه محور Django

پیشنازها: آشنایی با فرم ورک چنگو - آموزش پایتون

ساخت یک پژوه کتابخانه آنلاین با فزبم ورک چنگو

1- دانلود Python ار سابت https://www.python.org/downloads

2- تصب Python(تنها نکته تیک گزینه را حنماً برنید)

3- نصب  محیط مجازی پایتون

هنگامی که Python را نصب می کنید، در یک محیط عمومی که همه کدهای Python به اشتراک گذاشته می شود، نصب می شود. در حالی که می توانید هر بسته پایتونی(مثل جنگو و ... ) را که دوست دارید در محیط جداگانه نصب کنید.

اگر جنگو را در محیط پیش‌فرض/عمومی نصب کنید، تنها می‌توانید یک نسخه از جنگو را در رایانه خود قرار دهید. اگر می‌خواهید وب‌سایت‌های جدیدی ایجاد کنید (با استفاده از آخرین نسخه جنگو) و در عین حال همچنان وب‌سایت‌هایی را که به نسخه‌های قدیمی‌تر تکیه می‌کنند حفظ کنید، می‌تواند مشکل ساز باشد.

در نتیجه، توسعه دهندگان با تجربه Python/Django معمولاً برنامه های پایتون را در محیط های مجازی مستقل پایتون اجرا می کنند. این چند محیط مختلف جنگو را در یک کامپیوتر فعال می کند. تیم توسعه دهنده جنگو توصیه می کند که از محیط های مجازی پایتون استفاده کنید!

 ما در زیر به شما نشان می‌دهیم که چگونه جنگو را در یک محیط مجازی نصب کنید.

تنها کاری که باید انجام دهید این است که دستور زیر را در خط فرمان اجرا کنید:

 ابزاری برای ایجاد محیط‌های مجازی پایتون ایزوله، که هر کدام کتابخانه‌ها و بسته‌های سایت خود را دارند.

Step1

pip3 install virtualenvwrapper-win

ساخت پوشه پروژه

Step2

E:\Python\project>python -m venv venv

فعال کردن محیط‌ مجازیStep3 E:\Python\project>venv\scripts\activate
لیست ماژول های نسب شده در محیط مجازی

Step4

(venv) E:\Python\project>pip freeze

 

4- نصب Django ار خط فرمان ویندوز 

Step5: (venv) E:\Python\project>pip install django


روش نصب از طریق Anaconda(توزیع آزاد از زبان‌های برنامه‌نویسی Python و R)

ساخت محیط مجازی - فعال کردن محیط - نصب پایتون - نصب جنگو


Anaconda مدیریت بسته  را با «کوندا» (Conda)  مدیریت می‌ کند

مرحله 1- ایجاد یک محیط (تعیین مکان برای یک محیط)conda create --prefix ./myenv
مرحله 2: Conda را فعال کرده و Python و Django را نصب کنید

E:\reza\python\myenv>conda activate

E:\reza\python\myenv>conda install python=3.10.4
 E:\reza\python\myenv>conda install -c conda-forge django
OR
Install pip & Djange in ANACONDA.NAVIGATOR Environments

مرحله 3: ایجاد پروژه E:\reza\python\myenv>django-admin startproject locallibrary
 E:\reza\python\myenv>cd locallibrary
مرحله 4: ایجاد برنامهE:\reza\python\myenv\locallibrary>py manage.py startapp catalog
مرحله 5: سرور را اجرا کنیدE:\reza\python\myenv\locallibrary>python manage.py runserver

 

علم داده (Data Science) با پایتون

" نقشه راه آموزش علم داده با پایتون "

عنوانموضوعات

آموزش پایتون

(زمان تخمینی: 2 ماه)

ساختارهای داده رایج (انواع داده، لیست ها، دیکشنری ها، مجموعه ها، تاپل ها)، توابع، منطق، جریان کنترل، الگوریتم های جستجو و مرتب سازی، برنامه نویسی شی گرا و کار با کتابخانه های خارجی - SQL اسکریپت نویسی: پرس و جو از پایگاه داده با استفاده از پیوندها، تجمیع ها و پرسش های فرعی - استفاده از Git و GitHub

جمع آوری داده ها-پاکسازی داده

(زمان تخمینی: 2 ماه)

Pandas و NumPy دو کتابخانه ای هستند که در اختیار شما هستند تا از داده های کثیف به داده های آماده برای تجزیه و تحلیل برسید.

تجزیه و تحلیل داده ها

(زمان تخمینی: 2 ماه)

تجزیه و تحلیل داده ها: تعریف سوالات، رسیدگی به مقادیر از دست رفته، نقاط پرت، قالب بندی، فیلتر کردن، تجزیه و تحلیل تک متغیره و چند متغیره.تجسم داده ها: ترسیم داده ها با استفاده از کتابخانه هایی مانند matplotlib، seaborn و plotly. نحوه انتخاب نمودار مناسب برای انتقال یافته ها از داده ها را بدانید.داشبوردها: درصد خوبی از تحلیلگران تنها از Excel یا ابزارهای تخصصی مانند Power BI و Tableau برای ساخت داشبوردهایی استفاده می کنند که داده ها را خلاصه/تجمع می کند تا به مدیریت در تصمیم گیری کمک کند.هوش تجاری: گزارش ها

مهندسی داده

(زمان تخمینی: 4 ماه)

مهندسی داده با در دسترس قرار دادن داده های پاک برای محققان و دانشمندان در شرکت های بزرگ داده محور، زیربنای تیم های تحقیق و توسعه است.

مسئولیت های یک مهندس داده شامل ایجاد یک معماری داده کارآمد، ساده سازی پردازش داده ها و حفظ سیستم های داده در مقیاس بزرگ است. ETL، استخراج - تبدیل - لود - بهینه سازی عملیات پایگاه داده برای ایجاد کارایی بالا.

یکی دیگر از مهارت های حیاتی پیاده سازی این معماری های داده است که نیازمند مهارت در ارائه دهندگان خدمات ابری مانند AWS، Google Cloud ، Microsoft Azure است.

آمار و ریاضیات کاربردی

(زمان تخمینی: 4 ماه)

روش های آماری بخش مرکزی علم داده است. تقریباً تمام مصاحبه‌های علم داده عمدتاً بر آمار توصیفی و استنباطی متمرکز هستند.

افراد اغلب بدون درک روشنی از روش‌های آماری و ریاضی الگوریتم‌های یادگیری ماشین را شروع می‌کنند. که این مناسب نیست.

آمار توصیفی  - میانگین، میانه، حالت، آمار وزنی، آمار کوتاه شده و توزیع برای توصیف داده ها

آمار استنباطی  - طراحی آزمون‌های فرضیه، آزمون‌های A/B، تعریف معیارهای تجاری، تجزیه و تحلیل داده‌های جمع‌آوری‌شده و نتایج آزمایش با استفاده از فاصله اطمینان، مقدار p و مقادیر آلفا.

جبر خطی، حساب تک متغیره و چند متغیره- توابع ،گرادیان و بهینه سازها در یادگیری ماشین.

یادگیری ماشینی و هوش مصنوعی

(زمان تخمینی: 4 ماه)

پس از اینکه خودتان را پخته کردید و تمام مفاهیم اصلی ذکر شده در بالا را مرور کردید، اکنون باید آماده باشید تا با الگوریتم های ML شروع کنید.

سه نوع عمده یادگیری وجود دارد:

یادگیری تحت نظارت  - شامل مشکلات رگرسیون و طبقه بندی است. رگرسیون خطی ساده، رگرسیون چندگانه، رگرسیون چند جمله‌ای، بیز ساده، رگرسیون لجستیک، KNN، مدل‌های درختی، مدل‌های مجموعه را مطالعه کنید. با معیارهای ارزیابی آشنا شوید.

یادگیری بدون نظارت  - خوشه بندی و کاهش ابعاد دو کاربرد پرکاربرد یادگیری بدون نظارت هستند. در PCA، خوشه‌بندی K-means، خوشه‌بندی سلسله مراتبی و مخلوط‌های گاوسی عمیق شوید.

یادگیری تقویتی (می توان از آن گذشت*) - به شما کمک می کند تا سیستم های خود پاداش بسازید. با استفاده از کتابخانه TF-Agents، ایجاد شبکه های Deep Q و غیره، بهینه سازی پاداش ها را بیاموزید.

یادگیری عمیق

deeplearning

(زمان تخمینی: 1 ماه)

هفته اول: مقدمه ای بر یادگیری عمیق
روندهای فناورانه قابل توجهی که باعث توسعه یادگیری عمیق می شود و مکان و نحوه استفاده از آن را درک کنید.

هفته دوم: مبانی شبکه های عصبی
یک مشکل یادگیری ماشینی را با ذهنیت شبکه عصبی تنظیم کنید و از بردار برای سرعت بخشیدن به مدل های خود استفاده کنید.

هفته 3:شبکه های عصبی کم عمق: شبکه عصبی کانولوشن
یک شبکه عصبی با یک لایه پنهان با استفاده از انتشار رو به جلو و پس انتشار بسازید.

هفته 4: شبکه های عصبی عمیق: مدل دنباله ای
محاسبات کلیدی زیربنای یادگیری عمیق را درک کنید، از آنها برای ساختن و آموزش شبکه های عصبی عمیق استفاده کنید و آنها را در بینایی کامپیوتر به کار ببرید.

بینایی کامپیوتری- NLP

منابع برای یادگیری آمار و ریاضی:

آمار سطح کالج را بیاموزید: در این دوره آموزشی رایگان 8 ساعته در کانال YouTube freeCodeCamp

[کتاب] آمار عملی برای علم داده (به شدت توصیه می شود) -  راهنمای کامل در مورد تمام روش های آماری مهم به همراه برنامه ها / مثال های واضح و مختصر.

[کتاب] آمار برهنه  - راهنمای غیر فنی اما دقیق برای درک تأثیر آمار بر رویدادهای معمول، ورزش‌ها، سیستم‌های توصیه‌ها و موارد دیگر.

تفکر آماری در پایتون  - یک دوره آموزشی پایه برای کمک به شما در شروع تفکر آماری. بخش دوم این دوره نیز وجود دارد.

مقدمه ای بر آمار توصیفی - ارائه شده توسط Udacity. شامل سخنرانی های ویدیویی است که معیارهای پرکاربرد مکان و تنوع (انحراف استاندارد، واریانس، انحراف مطلق میانه) را توضیح می دهد.

آمار استنباطی، Udacity  - این دوره شامل سخنرانی های ویدیویی است که به شما آموزش می دهد تا از داده هایی که ممکن است فوراً آشکار نباشند نتیجه گیری کنید. بر توسعه فرضیه ها و استفاده از آزمون های رایج مانند آزمون t، ANOVA و رگرسیون تمرکز دارد.

و در اینجا راهنمای آمار برای علم داده است تا به شما کمک کند مسیر درست را شروع کنید.

منابع یادگیری ماشین:

در اینجا یک دوره کامل رایگان در مورد یادگیری ماشین در پایتون با ScikitLearn در کانال YouTube freeCodeCamp وجود دارد.

[کتاب] آموزش ماشینی دستی با Scikit-Learn، Keras، و TensorFlow، ویرایش دوم  - یکی از کتاب‌های مورد علاقه من در مورد یادگیری ماشین. نه تنها مشتقات ریاضی نظری را پوشش می دهد، بلکه اجرای الگوریتم ها را از طریق مثال ها نشان می دهد. شما باید تمرین های داده شده در پایان هر فصل را حل کنید.

دوره یادگیری ماشین توسط Andrew Ng  - دوره آموزشی برای هر کسی که سعی در یادگیری ماشین دارد. دستها پایین!

مقدمه ای بر یادگیری ماشین  - دوره تعاملی توسط Kaggle.

مقدمه ای بر هوش مصنوعی بازی و یادگیری تقویتی  - دوره تعاملی دیگری در Kaggle در مورد یادگیری تقویتی.

تخصص یادگیری عمیق

برای کسانی از شما که علاقه مند به یادگیری بیشتر در یادگیری عمیق هستید، می توانید با تکمیل این تخصص ارائه شده توسط deeplearning.ai و کتاب Hands-ON شروع کنید. این از دیدگاه علم داده چندان مهم نیست مگر اینکه بخواهید یک مشکل بینایی کامپیوتری یا NLP را حل کنید.

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

همچنین نسخه ویدیویی این وبلاگ در اینجا آمده است:

علم داده با هارشیت

طراحی وب سایت با زبان برنامه نویسی پایتون و فرم ورک جنگو

 "جنگو چیست؟" Django

 

جنگو یک فرم ورک وب سطح بالا پایتون است که توسعه سریع وب سایت های امن و قابل نگهداری را امکان پذیر می کند. بسیاری از دردسرهای توسعه وب را برطرف می کند، بنابراین می توانید بدون نیاز به اختراع مجدد چرخ، روی نوشتن برنامه خود تمرکز کنید. جنگو رایگان و منبع باز است.

جنگو به شما کمک می کند تا نرم افزارهایی بنویسید که عبارتند از:
جنگو می‌تواند برای ساختن تقریباً هر نوع وب‌سایتی (از سیستم‌های مدیریت محتوا و ویکی‌ها گرفته تا شبکه‌های اجتماعی و سایت‌های خبری) استفاده شود. جنگو به طور پیش فرض محافظت در برابر بسیاری از آسیب پذیری ها، از جمله تزریق SQL، اسکریپت بین سایتی، جعل درخواست بین سایتی و کلیک جک را امکان پذیر می کند.
جنگو از یک معماری مبتنی بر کامپوننت است.جنگو به زبان پایتون نوشته شده است که روی پلتفرم های زیادی اجرا می شود. این بدان معناست که شما به هیچ پلتفرم سرور خاصی وابسته نیستید و می‌توانید برنامه‌های خود را روی بسیاری از نخه های لینوکس، ویندوز و macOS اجرا کنید.

کد جنگو چه شکلی است؟
هنگامی که درخواستی دریافت می‌شود، برنامه بر اساس URL و احتمالاً اطلاعات موجود در داده‌های POST یا داده‌های GET، موارد مورد نیاز را بررسی می‌کند. بسته به آنچه مورد نیاز است، ممکن است اطلاعات را از یک پایگاه داده بخواند یا بنویسد یا سایر وظایف مورد نیاز برای برآورده کردن درخواست را انجام دهد. سپس برنامه پاسخی را به مرورگر وب برمی‌گرداند، و اغلب به صورت پویا یک صفحه HTML برای مرورگر ایجاد می‌کند تا با قرار دادن داده‌های بازیابی شده در محل‌هایی در قالب HTML نمایش داده شود.

برنامه های تحت وب جنگو معمولا کدهایی را که هر یک از این مراحل را انجام می دهد در فایل های جداگانه گروه بندی می کنند:

URL ها:  URL برای هدایت درخواست‌های HTTP به View مناسب بر اساس URL درخواست شده استفاده می‌شود. آدرس URL همچنین می‌تواند الگوهای خاصی از رشته‌ها یا ارقام را که در URL ظاهر می‌شوند مطابقت دهد و آنها را به عنوان داده به یک تابع view ارسال کند.
View: یک view یک تابع کنترل کننده درخواست است که درخواست های HTTP را دریافت می کند و پاسخ های HTTP را برمی گرداند.view ها به داده‌های مورد نیاز برای برآورده کردن درخواست‌ها از طریق مدل‌ها دسترسی دارند و قالب‌بندی پاسخ را به الگوها واگذار می‌کنند.
Model : مدل‌ها اشیاء پایتون هستند که ساختار داده‌های یک برنامه کاربردی را تعریف می‌کنند و مکانیسم‌هایی را برای مدیریت (افزودن، اصلاح، حذف) و پرس و جو رکوردها در پایگاه داده ارائه می‌کنند.
Template: الگو یک فایل متنی است که ساختار یا طرح بندی یک فایل (مانند صفحه HTML) را با متغیرهایی که برای نمایش محتوای واقعی استفاده می شود، تعریف می کند. یک view می تواند به صورت پویا یک صفحه HTML با استفاده از یک الگوی HTML ایجاد کند و آن را با داده های یک مدل پر کند. یک الگو می تواند برای تعریف ساختار هر نوع فایلی استفاده شود. لازم نیست HTML باشد!
توجه: جنگو از این سازماندهی به عنوان معماری "مدل نمای الگو (MVT)" یاد می کند. شباهت های زیادی به معماری آشناتر Model View Controller دارد.

بخش‌های زیر به شما ایده می‌دهند که این بخش‌های اصلی یک برنامه جنگو چگونه به نظر می‌رسند. 

ارسال درخواست به نمای مناسب (urls.py)
یک URL mapper معمولاً در فایلی به نام urls.py ذخیره می شود. در مثال زیر، urlpatterns فهرستی از نگاشت‌ها بین مسیرها (الگوهای URL خاص) و توابع نمای مربوطه را تعریف می‌کند. اگر یک درخواست HTTP دریافت شود که دارای URL منطبق با الگوی مشخص شده باشد، تابع view مربوطه فراخوانی شده و درخواست ارسال می شود.

urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/int:id/', views.book_detail, name='book_detail'),
    path('catalog/', include('catalog.urls')),
    re_path(r'^([0-9]+)/$', views.best),
]


شی urlpatterns لیستی از توابع ()path و یا ()re_path است 

اولین آرگومان برای هر دو روش یک مسیر (الگو) است که مطابقت خواهد داشت. متد ()path از پرانتز برای تعریف بخش‌هایی از URL استفاده می‌کند که به عنوان آرگومان‌های نام‌گذاری شده است و به تابع view ارسال می‌شوند.

آرگومان دوم تابع دیگری است که با تطبیق الگو /book/int:id فراخوانی می شود.  views.book_detail نشان می دهد که تابع ()book_detail اشاره می کند  و می توان آن را در ماژولی به نام views (به عنوان مثال در داخل فایلی به نام views.py) پیدا کرد.

 

class BookDetailView(generic.DetailView):

    """Generic class-based detail view for a book."""

    model = Book

تابع ()re_path از یک رویکرد تطبیق الگوی انعطاف پذیر استفاده می کند که به عنوان یک عبارت منظم شناخته می شود. 

رسیدگی به درخواست (views.py)
viewها قلب برنامه وب هستند، درخواست‌های HTTP را از مشتریان وب دریافت می‌کنند و پاسخ‌های HTTP را برمی‌گردانند. در این بین، آنها منابع دیگر فریم ورک را برای دسترسی به پایگاه داده ها، رندر قالب ها و غیره به کار می گیرند.

مثال زیر یک تابع ()view minimal index را نشان می‌دهد که می‌توانسته توسط URL mapper ما در بخش قبل فراخوانی شود. مانند تمام توابع view، یک شی HttpRequest را به عنوان پارامتر (درخواست) دریافت می کند و یک شی HttpResponse را برمی گرداند. در این مورد، ما هیچ کاری با درخواست انجام نمی دهیم، و پاسخ ما یک رشته کدگذاری شده را برمی گرداند. 

 

# filename: views.py (Django view functions)

from django.http import HttpResponse

def index(request):   
    return HttpResponse('Hello from Django!')

 

ماژول‌های پایتون «کتابخانه‌هایی» از توابع هستند که در فایل‌های جداگانه ذخیره می‌شوند و ممکن است بخواهیم از آنها در کد خود استفاده کنیم. در اینجا فقط شی HttpResponse را از ماژول django.http وارد می کنیم تا بتوانیم از آن در view خود استفاده کنیم:

from django.http import HttpResponse . راه های دیگری برای وارد کردن برخی یا همه اشیا از یک ماژول وجود دارد.

توابع با استفاده از کلمه کلیدی def همانطور که در بالا نشان داده شده است، با پارامترهای نامگذاری شده در داخل پرانتز بعد از نام تابع تعریف می شوند. آخر تابع به یک کولون ختم می شود. به نحوه تورفتگی خطوط بعدی توجه کنید. تورفتگی مهم است، زیرا مشخص می‌کند که خطوط کد در داخل آن بلوک خاص قرار دارند (تورفتگی اجباری یکی از ویژگی‌های کلیدی پایتون است و یکی از دلایلی است که کد پایتون بسیار آسان است).

تعریف مدل های داده (models.py)
برنامه های تحت وب جنگو، داده ها را از طریق اشیاء پایتون که مدل نامیده می شوند، مدیریت و پرس و جو می کنند. مدل‌ها ساختار داده‌های ذخیره‌شده را تعریف می‌کنند، از جمله انواع فیلدها و احتمالاً حداکثر اندازه، مقادیر پیش‌فرض، گزینه‌های فهرست انتخاب، متن راهنما برای مستندات، متن برچسب برای فرم‌ها، و غیره. تعریف مدل مستقل از پایگاه داده زیربنایی است.  هنگامی که انتخاب کردید از چه پایگاه داده ای می خواهید استفاده کنید، اصلاً نیازی به صحبت مستقیم با آن ندارید - فقط ساختار مدل و سایر کدهای خود را بنویسید، و جنگو تمام  برقراری ارتباط با پایگاه داده را انجام می دهد. 

قطعه کد زیر یک مدل جنگو بسیار ساده برای یک شی Team را نشان می دهد. کلاس Team از کلاس Django models.Model گرفته شده است. نام تیم و سطح تیم را به عنوان فیلدهای کاراکتر تعریف می کند و حداکثر تعداد کاراکترهایی را که برای هر رکورد ذخیره می شود، مشخص می کند. team_level می تواند یکی از چندین مقدار باشد، بنابراین ما آن را به عنوان یک فیلد انتخابی تعریف می کنیم و نقشه ای بین گزینه های نمایش داده شده و داده های ذخیره شده به همراه یک مقدار پیش فرض ارائه می دهیم.

 

# filename: models.py

from django.db import models

class Team(models.Model):
    team_name = models.CharField(max_length=40)

    TEAM_LEVELS = (
        ('U09', 'Under 09s'),
        ('U10', 'Under 10s'),
        ('U11', 'Under 11s'),
        ...  #list other team levels
    )
    team_level = models.CharField(max_length=3, choices=TEAM_LEVELS, default='U11')

 

داده های پرس و جو (views.py) مدل جنگو یک API پرس و جو ساده برای جستجوی پایگاه داده مرتبط ارائه می دهد.

این می تواند با تعدادی از فیلدها در یک زمان با استفاده از معیارهای مختلف مطابقت داشته باشد (به عنوان مثال دقیق، حساس به حروف بزرگ، بزرگتر از، و غیره)، و می تواند از عبارات پیچیده پشتیبانی کند 

خط list_teams = Team.objects.filter(team_level__exact="U09") نشان می‌دهد که چگونه می‌توانیم از API query مدل برای فیلتر کردن همه رکوردهایی استفاده کنیم که فیلد team_level دقیقاً متن 'U09' دارد (توجه داشته باشید که چگونه این معیار به ()filter به‌عنوان آرگومان عمل می‌کند، با نام فیلد و نوع تطبیق که با یک زیرخط دوتایی از هم جدا شده‌اند: team_level__exact).

 

 

## filename: views.py

from django.shortcuts import render
from .models import Team

def index(request):
    list_teams = Team.objects.filter(team_level__exact="U09")
    context = {'youngest_teams': list_teams}
    return render(request, '/best/index.html', context)

 

این تابع از تابع ()render برای ایجاد HttpResponse استفاده می کند که به مرورگر ارسال می شود. این تابع یک میانبر است.

یک فایل HTML با ترکیب یک الگوی HTML مشخص و برخی داده ها برای درج در قالب (در متغیری به نام "context" ارائه شده است) ایجاد می کند. 

ارائه داده ها (الگوهای HTML)
سیستم‌های الگو به شما امکان می‌دهند ساختار یک سند خروجی را با استفاده از نگه‌دارنده‌های مکان برای داده‌هایی که هنگام تولید صفحه پر می‌شوند، مشخص کنید. قالب ها اغلب برای ایجاد HTML استفاده می شوند، اما می توانند انواع دیگری از سند را نیز ایجاد کنند. 

قطعه کد زیر نشان می دهد که الگوی HTML فراخوانی شده توسط تابع ()renderچگونه است. این الگو با این فرض نوشته شده است که وقتی رندر می شود به متغیر لیستی به نام Youngest_teams دسترسی خواهد داشت (این در متغیر متنی داخل تابع ()render بالا موجود است). در داخل اسکلت HTML یک عبارت داریم که ابتدا بررسی می‌کند که آیا متغیر youngest_teams وجود دارد یا خیر، و سپس آن را در یک حلقه for تکرار می‌کند. در هر تکرار، الگو مقدار team_name هر تیم را در عنصر

نشان می‌دهد.

 

  return render(request, '/best/index.html', context)

## filename: best/templates/best/index.html

Home page

  {% if youngest_teams %}

      {% for team in youngest_teams %}
       

  {% else %}
  

No teams are available.


  {% endif %}
 

{{ team.team_name }}

      {% endfor %}

خلاصه(ساده و روان):

جنگو فرم ورکی برای برنامه نویسان پایتون است تا بتواند با استفاده از آن به راحتی وب سایت خود را طراحی کنند. جنگو درخواست کاربر(Request) که همان آدرس URL است توسط فایلی به نام Urls.py که مسیر  URL را به یک تابع در فایل View.py نگاشت کرده است ارسال  می کتد،تابع متناظر با درخواست در فایل Views.py انتخاب کرده و  داده های مورد نظر را از  فایل Models.py دریافت می کند و قالب صفحه مورد نطر  را نیز از پوشه Template  دریافت کرده و در نهابت فایل HTml را تولید وبرای کاربر سایت ارسال(Response) می کند. همین وبس !!!!!!