zoukankan      html  css  js  c++  java
  • 日记-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(经验值)时,断定两个字符串表达了同一个意思。

  • 相关阅读:
    Spring+Hibernate集成后事务与Session的一些理解。
    对Spring的一些个人理解
    centos5.8 x86_64安装oracle10g
    C#中MessageBox用法大全(附效果图)
    解决SQL Server管理器无法连接远程数据库的问题
    【sql2000数据库】Named Pipes Provider error 40
    用SQL数据库批量插入数据简介
    DBGridEH在Delphi7中的安装方法及使用说明
    sql server中datetime字段只取年月日如20060421,默认值如何设置?getdate()得到的是包含时分秒的时间。
    获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列
  • 原文地址:https://www.cnblogs.com/zx576/p/7236919.html
Copyright © 2011-2022 走看看