生成自动drf端点的肮脏魔术

django-lazydrf的Python项目详细描述


django-lazydrf是应用于模型的脏魔法,用于生成 自动Django Rest Framework终结点。

Note that this is an experimental project. Use at your own risk and sadness.

TODO: Provide a complete README

安装

pip install django-lazydrf

用法

  1. 定义django模型如下:

    from django.db import models
    from django.db.models import CharField
    
    from lazydrf.models import LDRF
    
    
    class Record(models.Model, metaclass=LDRF):
        """
        Defines a key/value record model.
        """
    
        #: Defines the key of the record.
        key = CharField(max_length=16, unique=True, blank=False, null=False)
    
        #: Defines the value of the record.
        value = CharField(max_length=64, blank=False, null=False, db_index=True)
    
        class Meta:
            """
            Defines Django model metadata.
            """
            app_label = "sample"
    
        class APIFields:
            """
            Defines fields related API metadata.
            """
            editable = ["key", "value"]
            ordering = ["key"]
            searching = ["key", "^value"]
    
        class APIFiltering:
            """
            Defines filtering related API metadata.
            """
            key = ["exact", "icontains", "startswith"]
            value = ["exact", "icontains", "startswith"]
    
        class APIViewset:
            pass
            #readonly = True
    
  2. 将给定django应用程序的所有lazydrf模型注册到通常的drf路由器,如:

    from django.conf.urls import url, include
    from django.contrib import admin
    from rest_framework import routers
    
    from lazydrf.utils import register_app
    
    
    #: Defines the DRF router.
    Router = routers.DefaultRouter()
    
    ## Register model endpoints for the sample Django application:
    register_app("sample", Router)
    
    #: Defines URL patterns:
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r"^", include(Router.urls)),
    ]
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中从本地文件系统导入文件   spring boot如何在Java SpringBoot项目中集成Olingo(Odata)   java查找连续数组中缺少的第k个元素(超过时间限制)   java为什么在mySql中插入1/2行时会得到2/4行   java不能在静态上下文中使用它   File Observer方法的java My onEvent()部分不起作用   java Netty NioSocketChannel在多线程写入时收到中断消息   java将文件夹与父文件夹一起复制   java我的TictaToe代码出了什么问题?如何检查已采取的措施?   java Swing JTable更新   java如何将cordinates查找为int   如何使用selenium和java在firefox中打开新的空选项卡   java Gradle构建输出Jar未运行   java没有GET/WEBINF/jsp/login的映射。jsp