我们的博客侧边栏有四项内容:最新文章.归档.分类和标签云. 这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码. 更好的解决方案:自定义一个模板标签,然后在每个页面的模板导入自定义的模板标签即可,下面整理出自定义标签的流程: 1 创建自定义模板的文件夹 在blog/…
Django提供了很多内置的模板标签比如{% if %}或者{% block %}Django也允许你创建自己的模板标签(template tags)来执行自定义的动作.当你需要在你的模板中添加功能而Django模板标签(template tags)的核心设置无法提供此功能的时候,自定义模板标签会非常方便 Django提供了以下帮助函数(functions)来允许你以一种简单的方式创建自己的模板标签(template tags): simple_tag:处理数据并返回一个字符串(string)…
作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们的博客侧边栏有四项内容:最新文章.归档.分类和标签云.这些内容相对比较固定和独立,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取这些数据然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码.更好的解决方案是直接在模板中获取,为此,我们使用 django 的一个新技术:自定义模板标签来完成任务. 使用模板标签的解决思路…
1. 配置环境,创建django工程 虚拟环境下建立Django工程,即创建一个包含python脚本文件和django配置文件的目录或者文件夹,其中manage.py是django的工程管理助手.(可在setting.py文件中更改语言.时区等) 主目录下(manage.py文件所在目录)下创建应用app(创建博客应用:python manage.py startapp blog),创建后需在setting.py文件中注册该应用(INSTALLED_APPS). 2. Model层——Djang…
1 如果没有创建超级管理员账号,先要创建python manage.py createsuperuser 2 在admin后台注册模型(如果没有这一步,登录http://127.0.0.1:8000/admin,看到admin用户只能添加用户,没有发表文章的一些功能) blog/admin.py from django.contrib import admin from .models import Post, Category, Tag admin.site.register(Post) ad…
1上网的流程: 打开浏览器,输入网址(http://zmrenwu.com/) 浏览器根据输入网址,完成以下几件事:1识别服务器地址,2将用户的浏览意图打包成一个http请求,发送给服务器,等待服务器响应请求 服务器接收到请求后,根据请求从数据库查询,取出数据,并将这些数据嵌入到html中,打包成http响应,返回给浏览器 浏览器接收到响应,解读响应,把html文档解析并显示给用户 从上面的流程来看,django就是一个服务器,其主要解决问题:接收浏览器发送的请求,返回响应给浏览器 从而,会产生…
需求: 真正的首页视图函数,当用户访问我们的博客首页时,他将看到我们发表的博客文章列表,就像 演示项目 里展示的这样.t https://docs.djangoproject.com/en/1.10/howto/static-files/ 编写博客视图函数 从数据库获取文章的标题,将其作为模板变量传递到模板,所以视图函数 # coding=utf8 from django.shortcuts import render from django.http import HttpResponse f…
说起这个侧栏真是苦恼我很长时间,一开始以为和之前的一样传递额外参数就可以了就像下面这样: class IndexView(ListView): template_name = 'apps/index.html' context_object_name = 'article_list' def get_queryset(self): article_list = Article.objects.filter(status='p') return article_list def get_conte…
推荐学习博客:http://pythonzh.cn/post/8/ 博客或者web界面向用户展示内容,它需要从某个地方获取博客内容或者web界面内容,才能够展示出来.通常来说:某个地方指的就是数据库 数据库的组织是根据我们的博客需求来设计的, 博客需求:博客初级版本主要包含博客文章,文章会有分类以及标签.一篇文章只能有一个分类,但可以打上很多标签因此,可以设计数据库的形式() 设计数据库组织一张表table 增加另外一个表, 这 3 篇文章的分类和标签都是相同的,这会产生很多重复数据,当数据量很…
推荐学习博客:http://zmrenwu.com/post/6/ 选择数据库版本(SQLite3) 如果想选择MySQL等版本数据库,请先安装MySQL并且安装python mysql驱动,这里不做描述.可以查看虫师web接口开发与自动化测试page65 选择Python 内置数据库SQLite3 SQLite3 是一个十分轻巧的数据库,它仅有一个文件.你可以看一到项目根目录下多出了一个 db.sqlite3 的文件,这就是 SQLite3 数据库文件,Django 博客的数据都会保存在这个数…