写个view视图,查看 Django settings 配置

写个view视图,查看 Django settings 配置

代码环境很复杂,settings.py 有大量 if else 代码,根据不同情况做不同的配置初始化。实际运行起来完全不知道干了什么。写了个 view 视图,查看当前所有的配置。

代码

view.py

def beautiful_json_response(obj):
    """
    返回美化的JSON
    """
    def obj_to_json(obj):
        if hasattr(obj, '__dict__'):
            return obj.__dict__
        return f'Class {obj.__class__.__name__} [{str(obj)}]'

    return JsonResponse(obj, safe=False, json_dumps_params={
        'default': obj_to_json,
        'ensure_ascii': False,
        'indent': 4,
        'sort_keys': True,
        'separators': (',', ': ')
    })


def settings(request):
    """
    所有 Django 配置
    """
    from django.conf import settings
    return beautiful_json_response(settings)


def settings_query(request):
    """
    查询指定 Django 配置
    """
    setting_key = request.GET.get('setting_key')
    if not setting_key:
        return HttpResponse(f'参数[setting_key]不能为空,URL参数settings_query/?setting_key=xxx,查询Django配置')

    from django.conf import settings
    setting_info = {setting_key: getattr(settings, setting_key)}
    return beautiful_json_response(setting_info)


def request_detail(request):
    """
    一个请求的所有详情
    """
    result = {
        'headers': request.headers,
        'body': request.body,
        'cookies': request.COOKIES,
        'GET': request.GET,
        'POST': request.POST,
        'FILES': request.FILES,
        'META': request.META,
    }
    return beautiful_json_response(result)

urls.py

urlpatterns = [
    url(r'^$', views.index),
    url(r'^settings/$', views.settings),
    url(r'^settings_query/$', views.settings_query),
    url(r'^request_detail/$', views.request_detail),
]

查看所有配置

http://127.0.0.1:8000/settings/

查看指定配置

http://127.0.0.1:8000/settings_query/?setting_key=MIDDLEWARE

查看请求详情

http://127.0.0.1:8000/request_detail/?a=baaaaaaaaa&b=d
posted @ 2026-07-31 10:25  吴思老  阅读(3)  评论(0)    收藏  举报