在此之前我们已经编写了 Blog 的首页视图,并且配置了 URL 和模板,让 Django 能够正确地处理 HTTP 请求并返回合适的 HTTP 响应。不过我们仅仅在首页返回了一句话:欢迎访问我的博客。这是个 Hello World 级别的视图函数,我们需要编写真正的首页视图函数,当用户访问我们的博客首页时,他将看到我们发表的博客文章列表,就像 演示项目 里展示的这样。 首页视图函数 上一节我们阐明了 Django 的开发流程。即首先配置 URL,把 URL 和相应的视图函数绑定,一般写在 urls.py
我们的博客侧边栏有四项内容:最新文章、归档、分类和标签云。这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。更好的解决方案是直接在模板中获取,为此,我们使用 Django 的一个新技术:自定义模板标签来完成任务。 使用模板标签的解决思路 我们前面已经接触过一些 Django 内置的模板标签,比如比较简单的 {% static %} 模板标签,这个标签帮助我们在模板中引入静态
一、前言 1.1.环境 python版本:3.6 Django版本:1.11.6 1.2.预览效果 最终搭建的blog的样子,基本上满足需求了。框架搭好了,至于CSS,可以根据自己喜好随意搭配。 二、
SAOMS系统搭建 采用python3.6 + django2.1 + pycharm Django采用M(model: 数据存取层) T(template: 业务逻辑层) V(views: 表现层) 初始化项目 1. 首先要确保有pip包管理工具 2. virtualenv: pip install virtualenv, python虚拟环境 3. mkvirtualenv <project_name>创建虚拟环境 4. workon <env_name> 进入虚拟环境 5. pip install x
10、页面侧边栏:使用自定义模板标签 我们的博客侧边栏有四项内容:最新文章、归档、分类和标签云。这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。更好的解决方案是直接在模板中获取,为此,我们使用 Django 的一个新技术:自定义模板标签来完成任务。 使用模板标签的思路 我们前面已经接触过一些 Django 内置的模板标签,比如比较简单的 {% static %} 模板标签
我们的博客侧边栏有四项内容:最新文章、归档、分类和标签云。这些内容相对比较固定和独立,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取这些数据然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。更好的解决方案是直接在模板中获取,为此,我们使用 django 的一个新技术:自定义模板标签来完成任务。
Django是一种用Python编写的流行Web框架,遵循Model-View-Template(MVT)架构模式。MVT 是众所周知的 Model-View-Controller (MVC) 模式的变体,它提供了一种构建 Web 应用程序的结构化方法。了解如何在 Django 中使用 MVT 创建基本项目是开发健壮且可扩展的 Web 应用程序的基本步骤。
M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作
进入到目录后,输入创建 Django 项目命令(注意,Django 创建项目后还需要通过命令在当前 Django 下创建对应的 app):
==, !=, >=, <=, >, < and, or, not, in, not in这些操作符都可以在模板中使用
努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!
第四章 模板 1.标签 (1)if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即,变量存在,非空,不是布尔值假),系统会 显示在 {% if %} 和 {% endif %} 之间的任何内容,例如: {% if today_is_weekend %} Welcome to the weekend! {% endif %} {% else %} 标签是可选的: {% if today_is_weekend %} Welcome to the we
Welcome to the weekend!
Welcome to the we
截止到目前为止我们的 django blog 文章展示部分,已经实现的“八九不离十”了。你以为本系列文章就要结束了吗?不能够!新的征程才刚刚开始,HelloDjango 系列文章刚刚过半,后面的文章你将接触更多博客系统的细节。向着一个小而全的博客系统前进、前进、前进,你定会收获颇多。
本文将介绍Django模版系统的语法。如果您需要更多该系统如何工作的技术细节,以及希望扩展它,请浏览 The Django template language: for Python programmers.
我的博客从创建之初就有分页,但是只是很简单的显示“上一页 1/20 下一页”这种效果,周末在家优化博客的时候突然奇想完善了一下网站的分页,直接一比一还原了百度搜索页面的分页效果。
博客文章的模型有一个 excerpt 字段,这个字段用于存储文章的摘要。目前为止,还只能在 django admin 后台手动为文章输入摘要。每次手动输入摘要比较麻烦,对有些文章来说,只要摘取正文的前 N 个字符作为摘要,以便提供文章预览就可以了。因此我们来实现如果文章没有输入摘要,则自动摘取正文的前 N 个字符作为摘要,这有两种实现方法。
一、什么是架构? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。 如果要动态生成HTML,就需要把上述步骤自己来实
博客文章的模型有一个 excerpt 字段,这个字段用于存储文章的摘要。目前为止,还只能在 Django Admin 后台手动为文章输入摘要。每次手动输入摘要比较麻烦,对有些文章来说,只要摘取正文的前 N 个字符作为摘要,以便提供文章预览就可以了。因此我们来实现如果文章没有输入摘要,则自动摘取正文的前 N 个字符作为摘要,这有两种实现方法。 复写 save 方法 第一种方法是通过复写模型的 save 方法,从正文字段摘取前 N 个字符保存到摘要字段。回顾一下我们的博客文章模型代码: blog/models.
注:MTV的本质还是MVC,可以理解为MVC+T,使用T来辅助展示网站内容。因为网页的C部分很多时候都不大,不太需要拆分出来,所以就变成MTV了。
1.根据标签<input type="file" name="exc">定义的 name 获取文件对象
前面我们把博客页面的设计给出来了,但是现在的页面只有框架,我们还需要一些内容来填充这个框架。
我们博客的文章(Post)模型除了通过 ForeignKey 关联了 Category(分类)外,还通过 ManyToMany 关联了 Tag(标签)。在我们的 Demo 的侧边栏可以看到一个标签云效果的全部标签列表。现在我们来给博客实现这个效果,让 Django 从数据库中获取全部标签的数据列表,然后在模板中显示它们,并且点击相应的标签,就可以显示该标签下的全部文章列表。 获取标签列表 很明显的能够发现,标签和之前我们开发的分类功能是十分类似的,唯一的不同是一篇文章(Post)只能指定一个分类,但是却可以
通过对网络资料的收集整理,本文列出了100道python的面试题以及答案,你可以根据需求阅读测试。
这篇文章中,我们将讲解 Vue 实例的 Props 和 Methods,接着我们又讲解了最常见的 Vue 模板语法,并通过实例的方式将这些模板语法都实践了一番,最后我们讲解了 Vue 组件的组合,并完成了我们的发表商品页面。
{{ }} 和 {% %} (变量相关用{{ }} 逻辑相关用{% %})
模板系统
模版文件中使用的variables会被上下文字典中的对应的key的值所替代。 模版文件中使用的tags会被引擎执行一段相应的逻辑。
努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!
当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。
使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
django orm开发的主要目的是为了能够尽可能少通过sql语句操作数据库,这样就可以使得没有学习过数据库的朋友也能够开发一个自己的动态网站。但是,我个人在使用过程中,还是推荐需要提前掌握好数据库基础知识。
滚雪球第三轮核心学习的是 Python Web 相关知识点,那不可避免的会涉及到前端技术栈,如果你对 HTML,CSS 完全零基础,学习来可能比较吃力,建议可以先补充一些前端知识,便于后续学习,你也可以先直接进入 Django 学习阶段,问题不大。
客户端访问/use_template/,服务器调用对应的视图函数,进行模板的渲染,给模板文件传递变量,将模板文件中的变量进行替换,获取替换之后的html内容,将替换之后的html内容返回给客户端,返回渲染之后的完整的html页面,客户端只是显示。
v-model="变量",变量值与表单的value相关,placeholder属性是input框的默认值,v-model可以实现数据的双向绑定,变量的值可以影响表单标签的值,反过来标签的值也可以影响变量的值。
在Python代码中,我们几乎总是缩进四个空格。相比于Python文件,模板文件的缩进层级 更多,因此每个层级通常只缩进两个空格。
模板是 Django MVT 结构的第三个也是最重要的部分。Django 中的模板基本上是在 .html 文件中用 HTML、CSS 和 Javascript 编写的。Django 框架有效地处理和生成最终用户可见的动态 HTML 网页。Django 主要与后端一起运行,因此,为了提供前端并为我们的网站提供布局,我们使用模板。根据我们的需要,有两种方法可以将模板添加到我们的网站。
Django的基本命令 startproject 创建一个Django项目 django-admin startproject 项目名 startapp 创建一个Django应用 python manage.py startapp 应用名(blog) check 校验项目完整性 runserver 本地建议运行Django项目 python manage.py runserver shell 进入Django项目的python shell环境 test 执行Django用例测试 与数据库相关的命令 makemigrations 创建模型变更的迁移文件 python manage.py makemigrations migrate 执行上一个命令创建的迁移文件 python manage.py migrate dumpdate 把数据库数据导出到文件 loaddate 把文件数据导入到数据库
# Django - 中文教程文档: http://python.usyiyi.cn - anaconda使用 - conda list: 显示当前环境安装的包 - conda env list: 显示安装的虚拟环境列表 - conda create -n env_name python=版本号 - 激活conda的虚拟环境 - (Linux)source activate env_name - (window) activate env_nam
自学Django已经有一周啦,想把自己自学过程中的每一步都记录下来,给一些零基自学Django的战友们一些参考;本次主要内容为,用一个实例展现views.py中的数据是如何传递到html页面,并在页面中展示。
在之前的程序中,我们直接生成一个字符串,作为http回复,返回给客户端。这一过程中使用了django.http.HttpResponse()。 在这样的一种回复生成过程中,我们实际上将数据和视图的格式
首页展示的是所有文章的列表,当用户看到感兴趣的文章时,他点击文章的标题或者继续阅读的按钮,应该跳转到文章的详情页面来阅读文章的详细内容。现在让我们来开发博客的详情页面,有了前面的基础,开发流程都是一样的了:首先配置 URL,即把相关的 URL 和视图函数绑定在一起,然后实现视图函数,编写模板并让视图函数渲染模板。 设计文章详情页的 URL 回顾一下我们首页视图的 URL,在 blog\urls.py 文件里,我们写了: blog/urls.py from django.conf.urls import u
首页展示的是所有文章的列表,当用户看到感兴趣的文章时,他点击文章的标题或者继续阅读的按钮,应该跳转到文章的详情页面来阅读文章的详细内容。现在让我们来开发博客的详情页面,有了前面的基础,开发流程都是一样的了:首先配置 URL,即把相关的 URL 和视图函数绑定在一起,然后实现视图函数,编写模板并让视图函数渲染模板。
在我们的博客侧边栏有分类列表和标签列表,显示博客已有的全部文章分类。现在想在分类名和标签名后显示该分类或者标签下有多少篇文章,该怎么做呢?最优雅的方式就是使用 django 的 annotate 方法。
上篇博客我们聊了《JavaEE开发之SpringBoot工程的创建、运行与配置》,从上篇博客的内容我们不难看出SpringBoot的便捷。本篇博客我们继续在上篇博客的基础上来看一下SpringBoot是如何引入和使用MyBatis和Thymeleaf的。在之前的博客中我们提到过Hibernate,今天博客所引入的Mybatis所扮演的角色与Hibernate类似,都是一套ORM框架,主要负责持久化的,也是将数据库中的数据直接映射为Model的框架。 而Thymeleaf就是一个模板引擎了,与之前我们聊得PH
静态文件是 CSS、JavaScript、字体、图像或我们可能用来组成用户界面的任何其他资源。
django-admin startproject 项目名 在项目名目录下创建应用 python manage.py startapp blog 在project/settings.py中加入app
创建评论应用 相对来说,评论其实是另外一个比较独立的功能。Django 提倡,如果功能相对比较独立的话,最好是创建一个应用,把相应的功能代码写到这个应用里。我们的第一个应用叫 blog,它里面放了展示博客文章列表和细节等相关功能的代码。而这里我们再创建一个应用,名为 comments,这里面将存放和评论功能相关的代码。首先激活虚拟环境,然后输入如下命令创建一个新的应用: python manage.py startapp comments 我们可以看到生成的 comments 应用目录结构和 blog 应用
领取专属 10元无门槛券
手把手带您无忧上云