用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...
您好,欢迎来到本期“利用Python Django一步步搭建个人博客”系列的第四部分。在上一篇教程中,我们学习了如何编写URL并将其映射到页面。在我们继续之前,我们需要做的一件事是让我们写的URL具有动态性。我们想要这样做的原因是,确保我们的文件夹或文件位置发生变化,我们的程序不会失效。首先,转到我们创建的blogapp文件夹,然后创建一个名为“urls.py”的新文件。在该文件内,输入以下代码:
转到blog文件夹中的urls.py文件,并按如下所示进行更新:
在blog文件夹的urls.py文件中,我们在第17行从django.conf.urls导入一个名为“include”的模块。然后我们在第22行向它传递一个字符串。这个字符串是我们的blogapp将容纳的所有URL的地址。只要用户发出请求,Django就会搜索该文件的URL。请注意,同一行中的RegEx没有“$”符号。
在blogapp文件夹下的urls.py文件中,我们从views.py文件中导入posts_home函数(第4行)。接下来,我们在url函数中将该函数与RegEx一起调用。还记得blog下的urls.py中我们的RegEx丢失的“$”吗?它现在在这里。这意味着字符串在URL“/ posts /”处停止,就像我们之前做的那样!
现在我们明白了,运行服务器并转到localhost:8000 / posts。我们的页面仍然可以随心所欲地呈现。
在博客中,我们希望能够创建、更新、删除和显示我们拥有的帖子列表。但首先,我们将从显示帖子列表的页面开始,从那里开始构建。对于像我们的博客这样的大型程序,Django有一种更好的方式来呈现称为模板的页面。要开始使用模板,首先,在与blogapp文件夹相同的根目录中创建一个文件夹。
接下来,进入settings.py文件并将其修改为如下所示:
我们在那里做的是告诉Django去哪里寻找我们的模板文件。 目前,我们还没有任何创建。 转到模板文件夹,然后创建一个名为index.html的文件。在其中,添加以下代码:
接下来,进入您的views.py文件并将其修改为如下所示:
从views.py文件开始:我们创建了一个名为“context”的字典,其中包含键值对。接下来,我们调用render方法。 render方法有三个参数,即请求、要呈现的页面和字典。在index.html文件中,我们看到一个奇怪的{{title}}。这是一个传递给我们的HTML文件的变量。这个变量是我们在页面中创建的字典的“键值”对中的“值”。
如果我们转到localhost:8000 / posts /,我们会看到我们的页面正常运行。但它如何知道要呈现什么?views.py文件有一个我们创建的名为“posts_home”的方法。此方法接受请求并返回带有上下文的HTML页面。在我们的urls.py文件中,调用此方法,因此当我们在浏览器中向此URL发出请求时,我们会看到正在返回(呈现)的页面。
就是在Django中使用模板渲染页面。它看起来并不多,但是当我们向数据库添加数据时,我们可以在此页面上显示它。我们可以在Django中使用一个名为Queryset的东西来做到这一点。在开发环境中,键入以下命令:
python manage.py shell
这应该打开一个交互式shell,你可以编写python代码。我们想用数据填充数据库,所以写下面的代码:
>>> from blogapp.models import Post
>>>
这行代码的作用是导入我们的Post数据库,现在我们可以创建数据,删除数据以及我们想要的任何对数据库的操作。要向其添加数据,请运行以下命令:
>>> Post.objects.create(article_title = “My First data”, content=”Content should be up here)
>>>
这行代码的作用是创建一个标题为“My First data”和附带内容的帖子。请使用该命令创建14个帖子(随意更改标题和内容。此外,您可以创建多于或少于14个帖子)。现在,我们的数据库中已经拥有了一部分数据,我们可以查询数据库中的信息。在shell中运行以下命令:
>>> queryset = Post.objects.all()
>>> for obj in queryset:
. . . print obj.article_title
. . . print obj.content
现在我们在数据库中有了数据,我们希望看到它在HTML页面上呈现。为此,我们必须对views.py文件进行一些修改。添加以下代码:
打开index.html文件并对其进行以下修改:
在views.py文件中,我们从models.py导入Post数据库。这使我们能够在第8行查询它并将其附加到我们命名为“queryset”的变量。“Post.objects.all()”命令获取Post数据库中的所有数据并将其附加到queryset变量,然后我们将其作为“key-value”对中的“value”传递给上下文。注意这里的关键是“object_list”。
在index.html文件中,我们执行循环查看来自视图的数据。我们使用“For循环”来获取我们需要在页面上呈现的数据资源。
运行服务器,然后转到localhost:8000 / posts,可以看到我们的所有博客信息。
你到目前为止学到了什么:
1. URL如何工作
2.如何创建模板并在Django中呈现它
3.如何访问数据库并向其中添加数据
4.渲染要查看的数据。
我们该系列的教程到此就结束了,您现在已经能独自搭建自己简单的博客,如果您想学习Django或者python的更多操作,可以继续探索交流。
用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...相关推荐
- python实现oa系统_技术讨论 | 利用Python程序实现某OA系统的自动定位
前言 本文介绍了笔者通过python程序实现某OA系统自动考勤打卡功能及相关逻辑原理的解析. 声明:本程序仅供Python语言的学习交流用途,笔者不提倡利用程序自动考勤的做法,笔者不对滥用本程序导致的 ...
- python r语言 数据分析统计服_【分享】Python和R语言的数据分析/挖掘工具互查
数极客,拥有16种数据分析模型的新一代用户行为分析平台! 写在前面 在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种.当然,这篇博客还会随时更新(不会另起一篇,为了 ...
- 基于python的搜索引擎论文_技术分享 - 基于python构建搜索引擎系列——(四)检索模型...
构建好倒排索引之后,就可以开始检索了. 检索模型有很多,比如向量空间模型.概率模型.语言模型等.其中最有名的.检索效果最好的是基于概率的BM25模型. 给定一个查询Q和一篇文档d,d对Q的BM25得分 ...
- python可以做计量分析吗_技术分享 - python数据分析(2)——数据特征分析(上)...
1 分布分析 分布分析能揭示数据的分布特征和分布类型.对于定量数据,欲了解其分布形式是对称的还是非对称的,发现某些特大或特小的可疑值,可通过绘制频率分布表.绘制频率分布直方图.绘制茎叶图进行直观地分析 ...
- python个人博客搭建说明书_技术分享|利用Python Django一步步搭建个人博客(二)...
原标题:技术分享|利用Python Django一步步搭建个人博客(二) Hello,欢迎来到我们的"利用Python Django一步步搭建个人博客"系列的第二部分.在第一部分中 ...
- 小猿圈分享利用python网络爬虫获取网易云歌词
今天小猿圈给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本 ...
- 用python搭建个人博客过程_手把手搭建个人博客(图文教程)
搭建个人博客 浏览体验更棒请移步原文:手把手搭建个人博客 首先我们谈一谈搭建个人博客必要性,个人认为在学习过程中,被动接受知识对你的提高是轻微的.比如你看网课学习,在听老师讲解的时候感觉简单易懂,代码 ...
- python做三维图片挑战眼力_这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下...
最新请看这里:http://my.oschina.net/djangochina/blog/140099 断断续续2周时间吧,用django做了一个多用户博客系统,现在还没有做完,做分享下 做的时候房 ...
- java 调用python脚本过程_通过Java调用Python脚本
在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...
最新文章
- 友情链接优化的技巧分享
- 检测IIS应用程序池对象 回收
- AAAI 2022 | 全身涂装式对抗纹理迷彩生成框架FCA
- php判断几维数组的方法,php如何判断数组是几维
- 布局 —— 左侧固定,右侧自适应
- JDK1.8版本,java并发框架支持锁包括
- AOJ0118 Property Distribution【DFS】
- java多线程按行读取文件_“java”中多线程按行读取txt且每个线程读的内容不能重复,这么求“demo”?...
- 关于企业软件资质申请流程以及时间规划(二)——软件登记测试
- 大数据框架Storm的介绍
- postman下载安装和基础使用教程(官网)
- 谷歌AI版“你画我猜”刷屏朋友圈,背后是这样的原理!
- IT行业常见职位英语缩写及中文释义
- 1582年10月份日历表_1582年10月发生了什么 日历为什么凭空少了十天
- 一维卷积神经网络在近红外光谱分析中的应用
- 关于调制解调器、路由器、交换机
- 按头安利 好看又实用的SolidEdge 3d模型素材看这里
- JAVA中的arraylist集合,Java ArrayList集合
- 时钟程序设计java_Java数字时钟实现代码详解
- 国产处理器服务器操作系统安装(海之舟服务器操作系统安装说明)