Views
View مکانی میباشد که ما business logic اپلیکیشن خویش را در آن قرار طراحی اپلیکیشن در مشهد میدهیم.
View یک تابع پایتون میباشد که برای اعمال برخی business logic و بازگرداندن جواب به استفاده کننده به کارگیری میشود.
این جواب میتواند محتویات HTML یک برگه اینترنت یا این که تغییر و تحول مسیر یا این که خطای 404 باشد.
مجموع کوشش view در باطن فولدر views.py نرمافزار جنگو ساخت می گردد.
import datetime
# Create your views here.
from django.http import HttpResponse
def index(request):
now = datetime.datetime.now()
html = \"
Now time is %s.
\" % now
return HttpResponse(html) # rendering the template in HttpResponse
آغاز کتابخانه DateTime را وارد میکنیم که متدی برای اخذ تاریخ و مجال فعلی و کلاس HttpResponse ارائه میدهد.
در مرحله آن گاه، یک نمایه تابع view تعریفوتمجید میکنیم که درخواست HTTP را میگیرد و جواب میدهد.
زمانی با URL در urls.py رسم می گردد، تماس ها را ملاحظه کنید.
به عنوان مثال
path(\'index/\', views.index),
ال (View HTTP Decorators)
HTTP Decorators برای محصور کردن دسترسی به مشاهده بر پایه ی سیاق درخواست به کار گیری میگردد.
این دکوراتورها در django.views.decorators.http فهرست گردیدهاند و در شکل عدم رعایت وضعیت، یک django.http.HttpResponseNotAllowed را برمیگردانند.
سینتکس
require_http_methods(request_method_list)
نمونه
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse, HttpResponseNotFound
from django.views.decorators.http import require_http_methods
@require_http_methods([\"GET\"])
def show(request):
return HttpResponse(\'
This is Http GET request.
\')
این اسلوب تنها در شرایطی که اعمال میگردد که درخواست یک درخواست HTTP GET باشد.
Templates
جنگو با استعمال از سیستم Templates خویش شیوه مناسبی برای ساخت صفحه ها HTML پویا ارائه میدهد.
یک Templates مشمول نصیبهای اثبات خروجی HTML متبوع و همینطور بعضا سینتکس خاص میباشد که طریق درج محتوای پویا را توضیح می دهد.
در پوشه HTML، نمیتوانیم کد پایتون بنویسیم ، چون کد تنها بوسیله مفسر پایتون تعبیروتفسیر میگردد خیر مرورگر.
میدانیم که HTML یک لهجه علامت گذاری اثبات میباشد ، در حالی که پایتون یک لهجه اپلیکیشن نویسی پویا میباشد.
موتور Templates جنگو برای جداگانه کردن Templates از کد پایتون استعمال می گردد و به ما اذن میدهد صفحه ها اینترنت پویا بسازیم.
تنظیمات Templates جنگو
برای تنظیمات سیستم Templates ، بایستی چند ورودی در فولدر settings.py ارائه نماییم.
TEMPLATES = [
{
\'BACKEND\': \'django.template.backends.django.DjangoTemplates\',
\'DIRS\': [سیستم عامل.path.join(BASE_DIR,\'templates\')],
\'APP_DIRS\': True,
\'OPTIONS\': {
\'context_processors\': [
\'django.template.context_processors.debug\',
\'django.template.context_processors.request\',
\'django.contrib.auth.context_processors.auth\',
\'django.contrib.messages.context_processors.messages\',
],
},
},
]
در اینجا بیان کردیم که اسم دایرکتوری Templates ما templates میباشد.
به صورت پیش فرض، DjangoTemplates بهدنبال یک تحت شاخه الگوها در هر مورد از INSTALLED_APPS می شود.
مثال بی آلایش Templates جنگو
آغاز یک پوسته دایرکتوری در باطن نرمافزار پروژه ساخت فرمائید، همانگونه که در پایین اعمال دادیم.
بعد از آن یک پوسته index.html در باطن فولدر ساخت و ساز گردیده تولید نمایید.
index.html الگوی ما دربردارنده کد تحت میباشد.
Welcome to Django!!!
برای بار گذاری template ، سیاق ()get_template را همانگونه که در تحت جاری ساختن دادیم فراخوانی فرمائید و اسم پوسته را ارسال نمایید.
from django.shortcuts import render
#importing loading from django template
from django.template import loader
# Create your views here.
from django.http import HttpResponse
def index(request):
template = loader.get_template(\'index.html\') # getting our template
return HttpResponse(template.render()) # rendering the template in HttpResponse
یک URL برای دسترسی به سرمشق از مرورگر تهیه و تنظیم نمائید.
path(\'index/\', views.index),
تصویب اپلیکیشن در باطن INSTALLED_APPS
INSTALLED_APPS = [
\'django.contrib.admin\',
\'django.contrib.auth\',
\'django.contrib.contenttypes\',
\'django.contrib.sessions\',
\'django.contrib.messages\',
\'django.contrib.staticfiles\',
\'myapp\'
]
امر ذیل را جاری ساختن نمائید و با وارد کردن localhost:8000/index در مرورگر به template دسترسی پیدا فرمایید.
Template Language
template جنگو از سینتکس خاص خویش برای رویارویی با متغیرها ، برچسب ها ، کلمات و .. به کار گیری می نماید.
یک template با مسئله ای ارائه میگردد که برای بدست آوردن قیمت در یک کاغذ اینترنت به کار گیری میگردد.
مثال ها را مشاهده کنید.
متغیرها
متغیرهای مربوط به یک مورد را می قدرت با {{}} (پرانتزهای فرفری دوتایی) دسترسی داشت.
مثلا، مقدار اسم متغیر rahul میباشد.
بعد عبارت تحت اسم را با مقدار آن جایگزین می نماید.
My name is {{name}}.
My name is rahul
نمونه
from django.shortcuts import render
#importing loading from django template
from django.template import loader
# Create your views here.
from django.http import HttpResponse
def index(request):
template = loader.get_template(\'index.html\') # getting our template
name = {
\'student\':\'rahul\'
}
return HttpResponse(template.render(name)) # rendering the template in HttpResponse