Django 실전(4): scaffold 생성물 분석
7949 단어 django
from django.conf.urls.defaults import patterns, include, url
from depot.views import hello
urlpatterns = patterns('',
url(r'^hello/ hello),
)
urlpatterns += patterns ('',
(r'^depotapp/', include('depotapp.urls')),
)
위 코드에 추가된 설정 줄은 다음과 같습니다: depotapp로 시작하는 URL은 depotapp/urls입니다.py 파일을 처리합니다.
django의 URL 설정에서는 (정규 표현식,view 함수) 방식을 제외하고 (정규 표현식,include 파일) 방식도 지원합니다.보통 app 자체와 관련된 URL을 자신의 URL 프로필에 쓴 다음 프로젝트에서 인용합니다.
다음은 생성된 depotapp/urls를 살펴보겠습니다.py의 내용:
from django.conf.urls.defaults import *
from models import *
from views import *
urlpatterns = patterns('',
(r'product/create/$', create_product),
(r'product/list/$', list_product ),
(r'product/edit/(?P[^/]+)/$', edit_product),
(r'product/view/(?P[^/]+)/$', view_product),
)
CRU(D 없음)의 URL을 뷰에 매핑합니다.보기는 depotapp/views에 있습니다.py의 정의:
from django import forms
from django.template import RequestContext
from django.http import HttpResponse, HttpResponseRedirect
from django.template.loader import get_template
from django.core.paginator import Paginator
from django.core.urlresolvers import reverse
# app specific files
from models import *
from forms import *
def create_product(request):
form = ProductForm(request.POST or None)
if form.is_valid():
form.save()
form = ProductForm()
t = get_template('depotapp/create_product.html')
c = RequestContext(request,locals())
return HttpResponse(t.render(c))
def list_product(request):
list_items = Product.objects.all()
paginator = Paginator(list_items ,10)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
list_items = paginator.page(page)
except :
list_items = paginator.page(paginator.num_pages)
t = get_template('depotapp/list_product.html')
c = RequestContext(request,locals())
return HttpResponse(t.render(c))
def view_product(request, id):
product_instance = Product.objects.get(id = id)
t=get_template('depotapp/view_product.html')
c=RequestContext(request,locals())
return HttpResponse(t.render(c))
def edit_product(request, id):
product_instance = Product.objects.get(id=id)
form = ProductForm(request.POST or None, instance = product_instance)
if form.is_valid():
form.save()
t=get_template('depotapp/edit_product.html')
c=RequestContext(request,locals())
return HttpResponse(t.render(c))
보기의 관련 내용이 비교적 많은데 주로 템플릿이고 그 다음으로 모델 종류, Paginator 페이지 나누기, Form 폼 등이 있다.
기본적으로 전형적인 웹 응용 상호작용의 내용을 포함한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.