وبلاگ
جنگو

ثبت نام یا Sign Up

سلام به عنوان اولین گام باید یک url برای صفحۀ ثبت نام تعریف کنیم. myproject/urls.py from django.conf.urls import url from django.contrib import admin from accounts import views as accounts_views from boards import views urlpatterns = [ url(r’^$’, views.home, name=’home’), url(r’^signup/$’, accounts_views.signup, name=’signup’), url(r’^boards/(?P<pk>\d+)/$’, views.board_topics, name=’board_topics’), url(r’^boards/(?P<pk>\d+)/new/$’, views.new_topic, name=’new_topic’), url(r’^admin/’, admin.site.urls), …

خواندن ادامه
جنگو

تنظیمات اولیه

سلام برای تمام این کارها لازم است تا برنامۀ جدیدی را ایجاد کنیم. برای انجام این کار وارد فولدری می شویم که فایل manage.py قرار دارد و دستور زیر را وارد می کنیم: django-admin startapp accounts ساختار پروژه‌ بعد از این دستور به شکل زیر می شود. myproject/ |– myproject/ …

خواندن ادامه
جنگو

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

سلام در این فصل قصد داریم به مباحث اعتبارسنجی مثل ثبت نام، ورود به سیستم، خروج از سیستم، بازیابی پسورد و تغییر پسورد بپردازیم. همینطور چگونگی تعیین سطح دسترسی برای کاربران سایت از سایر افراد مطرح می شود. تا به این لحظه یک پروژه به نام Libogram تعریف کردیم که …

خواندن ادامه
جنگو

قالب‌های فرم با قابلیت استفادۀ مجدد یا Reusable Forms Templates

سلام اگر از مبحث قبلی به یاد داشته باشیم، منظور از این عنوان خلاصه سازی فرم ها و عدم تکرار یک سری کد در فایل های مختلف است. یعنی یک بار موارد ثابت را طراحی می کنیم و در فایل های جدید با اضافه‌کردن قسمت‌های قبلی و نوشتن قسمت‌های جدید …

خواندن ادامه
جنگو

زیباسازی فرم ها با Bootstrap

سلام برای کار با کتابخانه‌های Front-End مثل Bootstrap لازم است تا از پکیچِ django-widget-tweaks در جنگو استفاده کنیم. اول باید آن را نصب کنیم: pip install django-widget-tweaks مثل همیشه باید به لیست برنامه‌ها اضافه شود: myproject/settings.py INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘widget_tweaks’, ‘boards’, ] حالا در …

خواندن ادامه
جنگو

پیاده‌سازی فرم ها به شیوۀ استاندارد

سلام جنگو برای پیاده سازی و ساخت فرم ها یک ماژول آماده دارد که در forms قرار گرفته است. جنگو با دو نوع فرم با نام های forms.Form و forms.ModelForm کار می کند. کلاس Form یک کلاس عمومی برای ساخت انواع فرم ها بوده و در زمانی استفاده می شود …

خواندن ادامه
جنگو

فرم ها در جنگو

سلام کاربرد فرم ها که معلوم است اما مشکلی که در نرم افزارهای تحت وب وجود دارد مربوط به پیاده سازی ناصحیح فرم ها و عدم کنترل و پاکسازی ورودی‌ها بوده و ممکن است باعث حملاتی مثل SQLi یا XSS یا نظیر آن شود. اما در صورتی که در جنگو …

خواندن ادامه
جنگو

قالب‌هایی با قابلیت استفادۀ مجدد یا Reusable Templates

سلام تا به اینجای کار برای هر صفحۀ HTML به صورت جداگانه کد زدیم و بعضی وقت ها هم کدهای تکراری استفاده کردیم. در اینجا می خواهیم یک صفحۀ اصلی (master page) بسازیم و بعد قسمت های یکتایی را به هر تمپلیت اضافه کنیم. فایلی با نام base.html درون فولدر …

خواندن ادامه
جنگو
2

لیستی از الگوهای پرکاربرد URL

سلام تمام پیچیدگی کار در آدرس دهی مربوط به بخش ریجکس‌هاست که در این بخش به صورت جدولی آمده است. لینک:  https://simpleisbetterthancomplex.com/references/2016/10/10/url-patterns.html Primary Key AutoField Regex (?P<pk>\d+) Example url(r’^questions/(?P<pk>\d+)/$’, views.question, name=’question’) Valid URL /questions/934/ Captures {‘pk’: ‘934’} Slug Field Regex (?P<slug>[-\w]+) Example (r’^posts/(?P<slug>[-\w]+)/$’, views.post, name=’post’) Valid URL /posts/hello-world/ Captures   …

خواندن ادامه
جنگو

استفاده از APIها در URL

سلام حالا می خواهیم صفحۀ مربوط به تاپیک‌های یک بورد را کدنویسی کنیم. اولین کار این است که فایل urls.py را ویرایش کنیم: Libogram/urls.py from django.conf.urls import url from django.contrib import admin from boards import views urlpatterns = [     url(r’^$’, views.home, name=’home’),     url(r’^boards/(?P<pk>\d+)/$’, views.board_topics, name=’board_topics’),     url(r’^admin/’, admin.site.urls), …

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