五个很实用的Django 项目推荐

五个很实用的Django 项目推荐

Posted August 16, 2016

很多Django的包都能很大的增加我们的开发效率或者增加我们项目的功能, 比如: django-rest-frameworkwagtail, 它们带来了很棒的功能. 但是今天我想推荐一些其他的包, 更有爱的包.

django-sql-explorer

有时候你的用户想通过执行SQL的方式来访问你数据库里面的数据, 但处于某些安全的原因,你不能给他们直接执行数据库的权限.但django-sql-explorer 可以让用户通过web端沙盒的方式执行SQL并可以下载执行结果(CSV), 排序数据和数据透视操作.

#A view of a query

#Quick access to DB schema info

#Viewing all queries

django-tables-2

很多数据在web中通过表格展示, 通过它能够很方便的操作HTML表格, 让你非常容易的在Django中操作表格. 它提供了数据排列数据排序数据分页.

可以通过django-filter很容易的扩展搜索和过滤数据, 无论前端是bootstrap还是foundation或你自己开发的前端, 它可以完全兼容.

Python

import django_tables2 as tables
from .models import Address
class AddressTable(tables.Table):
    user = tables.Column(accessor='address.user')
    zip_code = tables.Column(verbose_name='Zip')
    city = tables.Column(verbose_name='Town')
    
    class Meta:
        model = Address
        order_by = '-zip_code'
        fields = sequence = ('user', 'zip_code', 'city',)

django-wiki

有时, 你需要wiki功能, 可以使用django-wiki来扩展到自己的项目中.它也可以工作在某一个区域, 当然这需要你自己在模版中指定. 它支持markdown, 版本控制, 和开箱即用的Box UI.

#django-wiki

django-reversion-compare

django-reversion 已经非常棒了, 然而对每一个变更都加入了比较功能, 你可以对变更做如下图一样直观的比较.

django-rest-hooks

REST APIs 是很棒的接口设计, 而且django-rest-framework能很好的提供这个功能. 但是如果你仅仅是基于事件来获取数据, 那么你需要一个webhook. 使用这个包可以非常容易的以REST框架装饰你的模型. 下面就是相应的代码.

Python

### settings.py ###

INSTALLED_APPS = (
    # other apps here...
    'rest_hooks',
)

HOOK_EVENTS = {
    'book.added':       'bookstore.Book.created',
    'book.changed':     'bookstore.Book.updated+',
    'book.removed':     'bookstore.Book.deleted',
    'book.read':        'bookstore.Book.read',
    'user.logged_in':    None
}

### bookstore/models.py ###

class Book(models.Model):
    user = models.ForeignKey('auth.User')
    title = models.CharField(max_length=128)
    pages = models.PositiveIntegerField()
    fiction = models.BooleanField()

    def serialize_hook(self, hook):
        return {
            'hook': hook.dict(),
            'data': {
                'id': self.id,
                'title': self.title,
                'pages': self.pages,
                'fiction': self.fiction,
            }
        }

    def mark_as_read(self):
        from rest_hooks.signals import hook_event
        hook_event.send(
            sender=self.__class__,
            action='read',
            instance=self # the Book object
        )
### USAGE ###
>>> from django.contrib.auth.models import User
>>> from rest_hooks.model import Hook
>>> jrrtolkien = User.objects.create(username='jrrtolkien')
>>> hook = Hook(user=jrrtolkien,
                event='book.added',
                target='http://example.com/target.php')
>>> hook.save()     # creates the hook and stores it for later...
>>> from bookstore.models import Book
>>> book = Book(user=jrrtolkien,
                title='The Two Towers',
                pages=327,
                fiction=True)
>>> book.save()     # fires off 'bookstore.Book.created' hook automatically
...

原文地址: https://medium.com/@raiderrobert/5-django-packages-that-get-too-little-love-d55232c28640

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏aoho求索

微服务网关Zuul迁移到Spring Cloud Gateway

在之前的文章中,我们介绍过微服务网关Spring Cloud Netflix Zuul,前段时间有两篇文章专门介绍了Spring Cloud的全新项目Sprin...

2833
来自专栏蓝天

Redis-4.0.11集群配置

本文参考官方文档而成:http://redis.io/topics/cluster-tutorial。经测试,安装过程也适用于redis-3.2.0、r...

4602
来自专栏蓝天

Redis-5.0.0集群配置

参考:http://redis.io/topics/cluster-tutorial。

7172
来自专栏一个默默无闻的工程师的日常

通过 Rally 进行 OpenStack Tempest 测试

2493
来自专栏kangvcar

Cobbler 快速入门指南

1543
来自专栏battcn

一起来学SpringBoot | 第三篇:SpringBoot日志配置

SpringBoot 内部采用的是 CommonsLogging进行日志记录,但在底层为 JavaUtilLogging、 Log4J2、 Logback 等日...

1253
来自专栏蓝天

编译hbase-1.2.3源代码

确保机器可以正常访问Internet,如能正常访问https://repo.maven.apache.org等,如果是代理方式则需要设置好eclipse和m...

1922
来自专栏耕耘实录

Linux(Centos7.4和RHEL7.4)环境下基于chrony的NTP服务器的构建

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

991
来自专栏运维

Cacti插件安装之NTOP

一,安装ntop 在官网获得最新源码包 wget http://cdnetworks-kr-2.dl.sourceforge.net/project/nt...

1692
来自专栏Samego开发资源

web性能测压工具 | siege

2598

扫码关注云+社区