سلام به عنوان اولین گام باید یک 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 تعریف کردیم که …
سلام اگر از مبحث قبلی به یاد داشته باشیم، منظور از این عنوان خلاصه سازی فرم ها و عدم تکرار یک سری کد در فایل های مختلف است. یعنی یک بار موارد ثابت را طراحی می کنیم و در فایل های جدید با اضافهکردن قسمتهای قبلی و نوشتن قسمتهای جدید …
سلام برای کار با کتابخانههای 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 یا نظیر آن شود. اما در صورتی که در جنگو …
سلام تا به اینجای کار برای هر صفحۀ HTML به صورت جداگانه کد زدیم و بعضی وقت ها هم کدهای تکراری استفاده کردیم. در اینجا می خواهیم یک صفحۀ اصلی (master page) بسازیم و بعد قسمت های یکتایی را به هر تمپلیت اضافه کنیم. فایلی با نام base.html درون فولدر …
سلام تمام پیچیدگی کار در آدرس دهی مربوط به بخش ریجکسهاست که در این بخش به صورت جدولی آمده است. لینک: 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 …
سلام حالا می خواهیم صفحۀ مربوط به تاپیکهای یک بورد را کدنویسی کنیم. اولین کار این است که فایل 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), …