`
runfeel
  • 浏览: 935625 次
文章分类
社区版块
存档分类
最新评论

Django学习笔记之博客开发(三)

 
阅读更多

这一篇主要学习的是关于Django的分页,登入后页面的版式,以及图片上传的内容

登入后页面版式:

我们先在的blog的登入之后只会显示登入成功或者失败,没有跳转,先在我们加上一个个人主页,然后设置好跳转。


我们设置好左侧是整个个人首页的导航,右侧则是导航对应的内容,这里需要改改urls,不过听简单,代码就不贴了,接下来就是Django的列表显示和分页。

Django列表及分页


我们将只有属于我们自己发布的博客从数据库取出来,虽然我的不太美观,但是还是取出来了~

代码是这样子的:

这是我们的home函数

def home(request):
	if 'account' in request.session:
		p=Reg.objects.get(account=request.session['account']).act
		sql=Edit.objects.filter(edit_id=p)
		return render(request,'edit/home.html',{
		'name':request.session['account'],
		'con':sql,
		})
这是我们的页面:

{% for i in con %}
	<div class="for">
            <p>{{ i.title }}</p><p>{{ i.time }}</p>
	</div>
{% endfor %}

列出来只后就是分页的问题,我们的数据库里面一共有两条内容,我们就把一条作为一页,其原理也不难,就是使用了html里面的get方法获取数据在读取数据库内容

下面是分页的代码

from django.core.paginator import Paginator,EmptyPage,InvalidPage
q=Edit.objects.all().order_by('id')
		paginator=Paginator(q,1)
		try:
			page=int(request.GET.get('page',1))
		except ValueError:
			page=1
		try:
			content=paginator.page(page)
		except (EmptyPage,InvalidPage):
			content=paginator.page(paginator.num_pages)

我们获取Django内部的分页的模块,然后导入进来,我们加以利用。下面是我在别人的博客里面找到的一些代码,我们可以在shell里面测试来了解它的主要作用

>>> from django.core.paginator import Paginator
 >>> objects=['C#','Java','Python','JavaScript','PHP']
 >>> p =Paginator(objects,2)    #每页两条数据的一个分页器
 >>> p.count  #数据总数
 5
 >>> p.num_pages  #总页数
 3
 >>> p.page_range   #页码的列表
 [1, 2, 3]
 >>> page1 = p.page(1)  #第1页
 >>> page1
 <Page 1 of 3>
 >>> page1.object_list  #第1页的数据
 ['C#', 'Java']
 >>> page2=p.page(2)  #第2页
 >>> page2
 <Page 2 of 3>
 >>> page2.object_list   #第2页的数据
 ['Python', 'JavaScript']
 >>> page2.has_next() #是否有后一页
 True
 >>> page2.has_previous() #是否有前一页
 True
 >>> page2.has_other_pages()  #是否有其他页
 True
 >>> page2.next_page_number() #后一页的页码
 3
 >>> page2.previous_page_number() #前一页的页码
 1
 >>> page2.start_index() # 本页第一条记录的序数(从1开始)
 3
 >>> page2.end_index()  # 本页最后录一条记录的序数(从1开始)
 4
 >>> p.page(0)               #错误的页,抛出异常
 ...EmptyPage: That page number is less than 1
 >>> p.page(3)               #错误的页,抛出异常
 ...EmptyPage: That page contains no results

好了,先在我们应该都了解分页的功能了,我们在html模板上的内容也需要修改

{% for i in content.object_list %}
	<div class="for">
            <p>{{ i.title }}</p><span>{{ i.time }}</span>
	</div>
	{% endfor %}
          </div>
		{% if content.has_previous %}
        <a href="?page={{ content.previous_page_number }}">上一页</a>
        {% endif %}
        <span class="current">
        第{{ content.number }}页/ 共 {{ content.paginator.num_pages}}页
        </span>
        {% if content.has_next %}
        <a href="?page={{ content.next_page_number }}">下一页</a>
        {% endif %}
先在就应该如同这样子了



这样子分页就已经不是问题了

Django图片上传

我们给index.html里面加上文件上传域

<input type='file' name='files' />
然后我们在edit里面再创建forms.py文件,这个文件是控制form表单的文件,我们在里面加入这样的内容

from django import forms

class NewTopicForm(forms.Form):  
    title = forms.CharField(max_length=50,error_messages={'required':u'标题不能为空'})
    image = forms.ImageField(required=False)

我们定义了标题也就是title的内容不能为空,尽然在前端可以控制,但是我们挪到了后端来演示。接下来我们在models里面加入

img=models.ImageField(upload_to='templates/pic/',blank=True,null=True)

我们定义一个img的字段,设置好路径。接下来我们修改的只有views了

if 'files' in request.FILES:
			image=request.FILES['files']
		else:
			image=None

我们将上传的数据传递过来,然后save进数据库,这一行我就不写了,大家都明白,由于有一些环境没有修改,我们就先不要将图片名称用中文了


这时我们看到了img字段里面确实写入了我们的图片名和路径。

自己捣鼓了一天半才捣鼓出来的,嘿嘿


分享到:
评论

相关推荐

    django框架学习笔记

    【描述】:“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码复用,提供了丰富的内置功能,如ORM...

    2023.07月基于Django开发的学习笔记博客及网站后台管理系统源码.zip

    这是一个基于Django框架开发的学习笔记博客与网站后台管理系统的源码包。Django是一个高度流行的Python Web框架,它提供了一整套解决方案,包括数据库交互、模板引擎、表单处理以及用户认证等,使得开发者能够快速地...

    2019版-千锋Django-源码+笔记.zip

    Django,作为Python世界中最受欢迎的Web开发框架之一,以其高效、简洁和强大的功能著称。2019版千锋Django的源码与笔记资源,为初学者和进阶者提供了一个全面且深度的学习平台,它不仅包含了源代码,还配有思维导图...

    Django 自学学习笔记 超详细【二】

    在本节学习笔记中,主要介绍了使用Django框架搭建博客时所涉及的数据模型(Model)的编写、数据库表文件的创建以及根据表文件建立真实数据库的过程。Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用...

    Django课件笔记详解

    通过深入学习以上知识点,并结合实际案例,您将能够熟练运用Django开发高效、安全的Web应用程序。记得实践是检验真理的唯一标准,动手操作是提升技能的关键。祝您在Django的学习道路上一帆风顺!

    Django入门笔记.doc

    Django入门笔记主要涵盖以下几个关键知识点: 1. **创建项目**:Django是Python的一款Web框架,用于快速开发高效、可维护的网站。创建项目是使用Django的第一步,通过命令行工具`django-admin startproject project...

    使用django开发名为学习笔记的项目,完成网站成功实现了用户注册,用户登录功能,实现用户自己仅能访问自己创建的日记等等

    在本项目中,我们使用了Python的Web框架Django来开发一个名为“学习笔记”的博客系统。这个系统具有用户注册、登录以及权限管理等核心功能,使得用户可以安全地存储和访问自己的个人日记。以下是对这些功能的详细...

    Django-CoolBlog:基于Django开发的个人博客系统

    **Django-CoolBlog:基于Django开发的个人博客系统** Django-CoolBlog是一个用Python的Django框架构建的个人博客系统。Django是一个高级的、免费且开源的Web应用框架,它遵循模型-视图-控制器(MVC)的设计模式,...

    django step by step

    【描述】提到的"教程"和"博文链接"指示这是一个在线分享的学习资源,作者在ITEYE博客平台上发布了关于Django的系列文章。通过链接(由于实际链接不可用,这里将不进行具体解读),读者可以逐步跟随教程学习,掌握...

    Python学习笔记

    【Python学习笔记】 在Python的世界里,学习笔记的标题“Python学习笔记”暗示我们将深入探讨Python编程的基础和高级概念。Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能著称。它适用于各种...

    【Django 笔记】Django简介、环境搭建、博客推荐

    【Django 笔记】 Django 是一个高度流行的 Python Web 开发框架,它以其高效、安全和可扩展性而闻名。Django 遵循 Model-View-Controller (MVC) 模式,但将其稍作修改为 Model-View-Template (MVT),将原本的 ...

    毕业设计:基于 Python and Django的微型博客系统.zip

    这个项目为学习者提供了一个绝佳的实践平台,可以深入理解Python和Django的工作原理,掌握Web开发的基本流程,包括前端与后端的交互、数据的存储与查询、用户认证和授权、模板渲染等。此外,还可以通过阅读和修改...

    我自己做的一个笔记完整的博客项目

    “blog博客项目”标签进一步确认了这是一个关于博客开发的项目。在IT领域,开发博客项目通常会涉及以下技术栈: 1. **前端**:HTML、CSS、JavaScript是基础,可能会使用React、Vue.js或Angular等现代前端框架进行...

    简记个人博客网站源码 v2.10.01.rar

    总之,"简记个人博客网站源码 v2.10.01.rar"是一个综合性的学习资源,涵盖了Web开发的多个层面,无论是对初学者还是经验丰富的开发者,都有很高的学习价值。通过深入研究和实践,可以提升Web开发技能,理解完整的...

    Django-Notes:Djanogo笔记

    【Django笔记】是关于Django框架的一系列学习记录,旨在深入理解并掌握这个流行的Python Web开发框架。Django是一个高效、强大且易用的开源Web应用框架,它遵循模型-视图-控制器(MVC)的设计模式,但在Django中被...

    wiki:一个用于博客的学生实用django应用

    **标题与描述解析** 标题“wiki:一个用于博客的学生实用django应用”表明这是一个基于...通过学习和理解这个应用,开发者可以深入掌握Django的Web开发技能,并了解如何将前后端技术相结合,打造用户友好的在线服务。

    Python开发学习,面试,技术笔记

    包含以下内容:计算机基础操作系统计算机网络计算机组成原理计算机编译原理Linux编程开发PythonC++JavaScriptDjango数据库相关MySQLRedisElasticsearch算法与数据结构Python数据结构与...admin轮子基于Django3的博客

    从零学Python笔记

    学习Python时,你可以从编写简单的脚本开始,逐步掌握上述概念,然后深入学习更高级的主题,如并发、网络编程、Web开发(如Django和Flask框架)以及数据分析和机器学习(如NumPy、Pandas和Scikit-learn库)。...

    《Python3萌新入门笔记》清晰文字版

    此外,通过廖雪峰官方网站、Python及其第三方库的官方文档、技术博客(如博客园和伯乐在线)等资源,学习者可以获取更多实时更新的信息。 二、英文的重要性 编程语言和官方文档大多使用英文,因此掌握一定的英文...

    curso_django1:存储库

    【描述】:“curso_django1 储存库”指的是一个关于Django框架的学习资源集合,通常这样的存储库可能包含一系列教程、项目代码、笔记或其他辅助材料,旨在帮助用户掌握Django的使用。 【详细知识点】 1. Django...

Global site tag (gtag.js) - Google Analytics