Django中的Templates、shell以及Admin

入门概念:
https://www.jianshu.com/p/0fe287440973
开发实例:
https://www.jianshu.com/p/dabf3ad31e46

本文进一步了解Django中的Templates、shell以及Admin。


Templates过滤器

  • 过滤器
    过滤器写在模板中,是属于Django的模板语言,可以修改模板中的变量,从而显示不同的内容。

  • 使用过滤器

{{value|filter}}
{{value|filter1|filter2|...}}
例如:
{{list_nums|length}}
显示的将是list的长度
  • 实例
    可以将之前开发实例中的edit_page页面中的代码进行如下修改:

原本写法:

    {% if article %}
        
        
        

{% else %}

{% endif %}

使用过滤器的写法:





更多过滤器及其用法参考官方文档:
https://docs.djangoproject.com/zh-hans/2.2/ref/templates/builtins/

Django Shell

是一个Python的交互式命令行程序
自动引入了我们的项目环境,可以用于和项目进行交互。

  • 使用方法:
    python manage.py shell

其使用基于之前的内容:

class Article(models.Model):
    title = models.CharField(max_length=32,default="title")
    content = models.TextField(null=True)
    ob = models.Manager()
    
    def __str__(self):
        return self.title
    
  • 用途
    主要用于在使用某个新内置函数时,对功能进行测试。

Admin增强用法

Admin后台用于对页面及数据进行一系列的管理。

  • 例1:

如果我们想对该类显示的内容进行配置,使得其显示出内容,修改日期等数据,就需要为其创建admin配置类:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content')

admin.site.register(Article, ArticleAdmin)
  • 例2

为了使用新功能,我能先对Article对象进行修改,新加入了一个pub_time属性。

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

然后更新对象:

修改admin

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content','pub_time')
    list_filter = ('pub_time',)

admin.site.register(Article, ArticleAdmin)

你可能感兴趣的:(Django中的Templates、shell以及Admin)