Django开发博客-(6)补充和总结

来源:互联网 发布:linux udp 端口检测 编辑:程序博客网 时间:2024/06/09 22:15

通过前5章内容,一个简易的博客就完成了,它具备基本的,发表博客、修改博客等。
接下来介绍一些其他内容。

Django Shell

他是一个Python交互式命令行程序,它自动引入项目环境,我们可以用它和我们的项目进行交互。
使用方式python manage.py shell
进入环境
然后我们可以查看一下当前Article的文章内容

>>> from myblog.models import Article>>> Article.objects.all()<QuerySet [<Article: 第一篇博客>, <Article: 第二篇博客>, <Article: 第三篇博客>]>

或者查看数据库详细内容

>>> Article.objects.all().values()<QuerySet [{'id': 1, 'title': '第一篇博客', 'content': 'Hello Blog!'}, {'id': 2, 'title': '第二篇博客', 'content': 'Python  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。\r\nPython是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议[2]  。\r\nPython语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。\r\nPython具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3]  有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。'}, {'id': 5, 'title': '第三篇博客', 'content': '呵呵、哈哈、你好、好好'}]>

不仅看到数据,还看到了它存储的形式

Admin

再来说一下admin查看数据的页面只显示名称太单调,我们想要显示日期要怎么做呢?
这里写图片描述
图1 显示日期

具体步骤
创建admin配置类
class ArticleAdmin(admin.ModelAdmin)
注册:admin.site.register(Article, ArticleAdmin)

显示其他字段
list_display = (‘title’, ‘pub_time’),它同时支持tuple和list

在Article类中添加一个发布日期,该类结构如下:

class Article(models.Model):    title = models.CharField(max_length=32, default='Title')    content = models.TextField(null=True)    pub_time = models.DateTimeField(auto_now=True)    def __str__(self):        return self.title

然后admin文件结构如下:

class ArticleAdmin(admin.ModelAdmin):    list_display = ('title', 'pub_time')admin.site.register(Article, ArticleAdmin)

下面是最重要一步,需要进行数据迁移!添加新字段
这里写图片描述
图2 数据迁移

最后界面就是上面显示的那样

当然现在的日期是没办法修改的因为设置了
pub_time = models.DateTimeField(auto_now=True)
修改成为:
pub_time = models.DateTimeField(null=True)

则在博客详细页面可以修改了
这里写图片描述
图3 可修改日期的页面
往前修改日期测试一下,点击保存

可以再次增加一个过滤器,可以让博客按照一定顺序排列,修改admin:

class ArticleAdmin(admin.ModelAdmin):    list_display = ('title', 'pub_time')    list_filter = ('pub_time',)admin.site.register(Article, ArticleAdmin)

这里写图片描述
图4 按规则排序

总结

创建项目和应用

  • 创建项目
  • 创建应用
  • 创建响应页面

开发Template

  • 配置Url
  • 开发Template

Models

  • 编写Model
  • 呈现数据

Admin

  • 超级用户创建
  • 配置Admin
  • 使用Admin修改数据

完善博客

  • 博客主页面
  • 博客内容
  • 博客编写页面

补充

  • Django Shell
  • Admin使用