日记-2017-7-25-django/admin-Levenshtein

0725

  • django-admin 简介| 注册-排序-显示-list_display修改
  • 字符串模糊比较

django-admin

django admin 是 django 提供的非常好用的后台管理功能

参考资料:django-admin-site

介绍几个基本入门的功能

1、注册

注册有两种方法


from django.contrib import admin
from .models import CinemaUrl, Cover
# Register your models here.

# 第一种
admin.site.register(Cover)

# 第二种
@admin.register(CinemaUrl)
class CinemaAdmin(admin.ModelAdmin):
    pass

第一种注册方法用于初期快速验证想法用,常用的更多的是第二种,可以按照一定的需求修改后台管理方法。
之后的方法也是基于第二种方法开展

2、list_display

在一个 model 下面可能有很多字段,我们希望能够在一个页面能够显示更多的信息,所以使用了 list_display

(app.)models.py


class CinemaUrl(models.Model):

    city = models.CharField('城市', max_length=50)
    district = models.CharField('区/县', max_length=255)
    location = models.CharField('详细地址', max_length=255, default='')
    cinema_name = models.CharField('电影院名', max_length=255, default='')
    created_time = models.DateTimeField('创建时间', auto_now_add=True)
    is_active = models.BooleanField('是否有效', default=True)
    view_count = models.IntegerField('访问次数', default=0)
    code = models.IntegerField('索引码')


(app.)admin.py


@admin.register(CinemaUrl)
class CinemaAdmin(admin.ModelAdmin):
    list_display = ('city', 'district', 'location', 'cinema_name', 'view_count', 'code')

在网站上的显示如下

3、排序

ordering 不仅能对时间排序,还可以对其他字段排序
排序:reference


ordering = ('created_time', )

4、修改 list_display 下的字段

使用 list_edible 可以对显示的字段进行修改


@admin.register(Movie)
class MovieAdmin(admin.ModelAdmin):
    ordering = ('created_time', )
    list_display = ('name', 'rating', 'directors', 'casts', 'genes', 'created_time', 'is_top', 'is_in_theater')
    list_editable = ('is_top', 'is_in_theater')

在网站上显示如下

以上几条是在 0725 使用到的技能,之后有新的需求再添加

字符串模糊查询

在做 电影票查询 项目中,从不同的网站爬下的数据各自有些区别,但最终希望合并几个网站的数据到一起

比如在不同网站上描述 '上海时代影城' 可能为 '时代影城', '时代影城(万乐城店)', '上海时代影城(万乐城店)',这样合并起来并不容易,在网上查找解决方案

找到了一个库 python-Levenshtein


>>> import Levenshtein
>>> Levenshtein.ratio('abc', 'abc')
1.0
>>> Levenshtein.ratio('abc', 'ascd')
0.5714285714285714

所以,当使用上述函数判断两个字符串相似率大于0.7(经验值)时,断定两个字符串表达了同一个意思。

原文地址:https://www.cnblogs.com/zx576/p/7236919.html