Django 학습(5) 정의 보기와 페이지 템플릿

3336 단어 django
요청 해석은 일반적으로 요청한 Request를 통해 일정한 파라미터를 얻은 다음에 파라미터에 따라 일정한 업무 논리적 판단을 한다. 이 중에는 조회 데이터베이스를 포함하고 되돌려야 할 데이터를 HttpResponse로 봉하여 되돌릴 수 있다.
코드는 다음과 같습니다.
이것은 이전 URL에 비친 URL (r'^articles/([0-9] {4})/$,views에 대한 간단한 처리 요청 함수입니다.year_archive),django는 URL에서 ()로 싸인 내용을 변수로 함수에 전달합니다.yeararchive의 year 변수는 ([0-9] {4}) 를 대표하는 값입니다.
Article.objects.filter(pub date year=year)는 발표 날짜가 year인 데이터를 필터합니다.주의pubdate__year, 데이터베이스 테이블에pub 만 있음date 필드,pubdate__year 대표 연차.
그래서 이것은django가 기본적으로 제공하는 인터페이스 조회 방식이라고 볼 수 있다.
다음에 되돌아온list 목록과 year를 사전 데이터로 조립합니다.
마지막으로django가 제공하는 함수render를 호출해서 되돌려줍니다.render가 완성하는 일은 템플릿을 선택하고 Context 대상을 만들고 이 데이터를 만든 Http Response에 넣는 것입니다.
mysite/news/views.py



from django.shortcuts import render



from .models import Article



def year_archive(request, year):

    a_list = Article.objects.filter(pub_date__year=year)

    context = {'year': year, 'article_list': a_list}

    return render(request, 'news/year_archive.html', context)

위의 코드는 사실 아래의 데이터를 봉인하고render에서 아래의 코드를 봉인하는 작용을 한다.
  
from django.template import Template, Context

from django.http import HttpResponse

import datetime



def current_datetime(request):

    now = datetime.datetime.now()

    # Simple way of using templates from the filesystem.

    # This is BAD because it doesn't account for missing files!

    fp = open('/home/djangouser/templates/mytemplate.html')

    t = Template(fp.read())

    fp.close()

    html = t.render(Context({'current_date': now}))

    return HttpResponse(html)

좋은 웹페이지 즐겨찾기