Django로 블로그 쓰기 (3) views 작성
urls에 있습니다.py에서 설정을 특정한 처리 방법에 비추십시오.
나의 블로그.core.urls.py:
urlpatterns = patterns('',
(r'root/(?P
'django.views.static.serve',
{'document_root':
'D:/Aptana Studio Workspace/blog/views/temp'}),
(r'^essay/(?P
'blog.core.views.essay_details'),
(r'^search/$','blog.core.views.search'),
(r'^leavemsg/(?P
'blog.core.views.leave_comment'),
(r'^(?P
'blog.core.views.index'),
(r'^latest/feed/$', LatestEntriesFeed()),
(r'^','blog.core.views.index'),
)
#view.py 위에 비교적 상세한 주석이 있다
from django.shortcuts import render_to_response,get_object_or_404
from blog.core.models import Essay,EssayType,Archive,Comment
from django.core.paginator import Paginator
import datetime
from django.db.models import Q
# ,pageNo=None,etype=None urls
#param None
def index(request,pageNo=None,etype=None,keyword=None):
try:
#
pgNo=int(pageNo)
except:
pgNo=1
try:
etype=int(etype)
except:
etype=None
if etype:
# ,exclude not in !=
datas=Essay.objects.all().
filter(eType=etype).
exclude(title='welcome')
elif keyword:
# ,title__contains
# Sql like %+keyword+%
#Q Sql OR
datas=Essay.objects.all().
get(Q(title__contains=keyword)
|Q(abstract__contains=keyword))
.exclude(title='welcome')
else:
#
datas=Essay.objects.all().exclude(title='welcome')
# 5
recentList=datas[:5]
#
paginator = Paginator(datas, 10)
if pgNo==0:
pgNo=1
if pgNo>paginator.num_pages:
pgNo=paginator.num_pages
curPage=paginator.page(pgNo)
# mian.html
return render_to_response('main.html',{
'page':curPage,
'essay_type':EssayType.objects.all(),
'pcount':paginator.num_pages,
'recent':recentList,
'archives':Archive.objects.all(),
'welcome':Essay.objects.filter(title='welcome')[0]})
#
def essay_details(request,eid=None):
# 404
essay=get_object_or_404(Essay,id=eid)
recentList=Essay.objects.all()[:5]
# Session
if request.session.get('e'+str(eid),True):
request.session['e'+str(eid)]=False
# timer , ,
#timer
# +1
essay.view_count=essay.view_count+1
essay.save()
return render_to_response('details.html',{
'essay':essay,
'essay_type':EssayType.objects.all(),
'archives':Archive.objects.all(),
'date_format':
essay.pub_date.strftime('%A %B %d %Y').split(),
'recent':recentList
})
#
def search(request):
if request.method == 'POST':
# POST
key=request.POST.get('keyword',None)
return index(request,keyword=key)
else:
return index(request)
#
def leave_comment(request,eid=None):
if request.method == 'POST' and eid:
uname=request.POST.get('uname',None)
content=request.POST.get('comment',None)
email=request.POST.get('email',None)
#
if uname and content and email:
comment=Comment()
comment.uname=uname
comment.content=content
comment.email=email
comment.pub_date=datetime.datetime.now()
comment.save()
return index(request)
return index(request)
이제 완성rss 구독 기능이 필요하시면 여기 소개를 보세요.
Django로 블로그 쓰기(4) Rss 구독 작성
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.