0725
- django-admin 简介| 注册-排序-显示-list_display修改
- 字符串模糊比较
django-admin
django admin 是 django 提供的非常好用的后台管理功能
参考资料:
介绍几个基本入门的功能
1、注册
注册有两种方法
from django.contrib import adminfrom .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 不仅能对时间排序,还可以对其他字段排序
排序: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 使用到的技能,之后有新的需求再添加
字符串模糊查询
在做 电影票查询 项目中,从不同的网站爬下的数据各自有些区别,但最终希望合并几个网站的数据到一起
比如在不同网站上描述 '上海时代影城' 可能为 '时代影城', '时代影城(万乐城店)', '上海时代影城(万乐城店)',这样合并起来并不容易,在网上查找解决方案
找到了一个库
>>> import Levenshtein>>> Levenshtein.ratio('abc', 'abc')1.0>>> Levenshtein.ratio('abc', 'ascd')0.5714285714285714
所以,当使用上述函数判断两个字符串相似率大于0.7(经验值)时,断定两个字符串表达了同一个意思。