from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse,HttpResponseRedirect
from . import models
from django.contrib import auth
from django.urls import reverse
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
# def index(request):
# return HttpResponse('hello world!--zoutao')
#可以使用面向对象的方式来写,声明为class类来写函数
#使用render渲染(显示)html页面,参数是字典,显示到前端
#实现分页了已经
def index(request):
articles = models.Article.objects.all() #获取全部的Article对象
paginator = Paginator(articles, 10) #每页显示三个
page = request.GET.get('page')
# first_page = paginator.page(1)
# last_page = paginator.page(paginator.num_pages)
try :
post_list = paginator.page(page)# If page is not an integer, deliver first page.
except PageNotAnInteger :
post_list = paginator.page(1)#取对象的第一分页对象
except EmptyPage :
post_list = paginator.page(paginator.num_pages)# If page is out of range (e.g. 9999), deliver last page of results.
return render(request, 'blog/index.html', {'post_list' : post_list})
#使用render渲染(显示)html页面,参数是字典,显示到前端,先获取到需要的数据,选择性返回
def article_page(request,article_id):
article = models.Article.objects.get(pk=article_id)
return render(request, 'blog/article_page.html', {'article': article})
#使用render渲染(显示)html页面,参数是字典,显示到前端,先获取到需要的数据,选择性返回
def article_edit_page(request,article_id):
#如果id是0,是新文章,如不是,传递id
if str(article_id) == '0':
return render(request,'blog/article_edit_page.html')
article = models.Article.objects.get(pk=article_id)
return render(request, 'blog/article_edit_page.html',{'article':article})
#action提交数据来了做响应
def article_edit_page_action(request):
title = request.POST.get('title','默认标题')
content = request.POST.get('content','默认内容')
#获取隐藏域传递来的参数,默认的是0
article_id = request.POST.get('article_id_hidden','0')
if article_id == '0':
#新建博客文章数据
models.Article.objects.create(title=title, content=content)
#保存了以后需要回显
articles = models.Article.objects.all()
return render(request,'blog/index.html',{'articles':articles})
#编辑原来文章的情况,以赋值更新
article = models.Article.objects.get(pk=article_id)
article.title = title
article.content = content
article.save()
return render(request,'blog/article_page.html',{'article':article})
# #定义表单模型
# class UserForm(forms.Form):
# username = forms.CharField(label='用户名:',max_length=100)
# password = forms.CharField(label='密码:',widget=forms.PasswordInput())
# #登录
# def login(request):
# if request.method == 'POST':
# uf = UserForm(request.POST)
# if uf.is_valid():
# #获取表单用户密码
# username = uf.cleaned_data['username']
# password = uf.cleaned_data['password']
# #获取的表单数据与数据库进行比较
# user = User.objects.filter(username__exact = username,password__exact = password)
# if user:
# return render_to_response('success.html',{'username':username})
# else:
# return HttpResponseRedirect('/login/')
# else:
# uf = UserForm()
# return render_to_response('login.html',{'uf':uf})
from django.contrib.auth import authenticate
def login(request):
username = request.POST.get('username',)
password = request.POST.get('password',)
user =auth.authenticate(username = 'zoutao',password='123456')
if user is not None and user.is_active:
# if user.is_active:
print('登录成功!')
else:
print('登录失败!请重试')
#return HttpResponseRedirect(reverse('blog:index', args=(user,)))
#方法二
# def login(request):
# username = request.POST.get('username',)
# password = request.POST.get('password',)
# user = auth.authenticate(username = 'zoutao',password='123456')
# if user is not None and user.is_active:
# # Correct password, and the user is marked "active"
# auth.login(request, user)
# # Redirect to a success page.
# return HttpResponseRedirect(reverse("blog:index",args=(username,)))
# #return HttpResponseRedirect(reverse('polls:results', args=(question_id,)))
# else:
# # Show an error page
# #return HttpResponseRedirect("blog/index/")
# return HttpResponseRedirect(reverse("blog:index",args=(username,)))
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
《计算机毕业设计:Python实现的博客系统》是一项精心打造的计算机学习资源,旨在助力本科课程设计、毕业设计以及Python学习。该资源通过Python编程语言,结合现代Web开发技术,构建了一个功能全面、操作便捷的博客系统,为学习者提供了一个实践与应用并重的平台。 此博客系统不仅具备用户注册登录、文章发布编辑、评论互动等基础功能,还融入了分类管理、标签系统、搜索优化等高级特性,使得博客内容更加丰富多样,用户体验更加流畅。同时,系统还注重响应式设计,确保在各种设备上都能呈现出良好的视觉效果和交互体验。 我们承诺,该博客系统经过严格的测试和优化,确保在各种环境下都能稳定、可靠地运行。学习者可以放心地将其用于本科课程设计或毕业设计,展现自己的编程能力和创新思维。此外,该资源还附赠了专业的计算机答辩PPT模板,帮助学习者在答辩或展示场合更加自信地呈现自己的成果。 值得一提的是,该资源的详细说明文档详尽而专业,为学习者提供了从环境搭建到系统部署的全程指导。无论是初学者还是有一定编程基础的学生,都能通过阅读文档、分析源码,快速上手并深入理解博客系统的实现原理和技术细节。
资源推荐
资源详情
资源评论
收起资源包目录
Python实现的博客系统.zip (33个子文件)
Python实现的博客系统
300套计算机本科毕业设计题目.xlsx 19KB
计算机专业炫酷答辩PPT模板.zip 339.51MB
dfyblog3
db.sqlite3 180KB
manage.py 806B
blog
__init__.py 0B
tests.py 60B
admin.py 518B
migrations
__init__.py 0B
0001_initial.py 627B
__pycache__
0001_initial.cpython-36.pyc 735B
__init__.cpython-36.pyc 145B
apps.py 83B
models.py 526B
templates
blog
article_edit_page.html 2KB
article_page.html 923B
login.html 742B
index.html 3KB
urls.py 779B
__pycache__
urls.cpython-36.pyc 497B
admin.cpython-36.pyc 631B
views.cpython-36.pyc 2KB
__init__.cpython-36.pyc 134B
models.cpython-36.pyc 801B
static
calendar
js
calendar.js 7KB
jquery.min.js 94KB
css
calendar.css 3KB
css
style.css 766B
edit.css 493B
ran.css 3KB
images
2.jpg 767KB
logo.png 13KB
background3.jpg 767KB
views.py 5KB
共 33 条
- 1
资源评论
小新要变强
- 粉丝: 2w+
- 资源: 539
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功