如何在 python 调试器 (PDB) 中检查 httprequest 对象

如何解决如何在 python 调试器 (PDB) 中检查 httprequest 对象

我按照官方指南使用 PDB 检查 How Django processes a request,但我没有在本地命名空间 (httprequest) 中看到 requested URL 对象(更不用说 pp locals()) } 和 pp globals() 中都没有),我该如何检查 http.request ?我正在使用 Nginx + Gunicorn + Django。

  28     import pdb                                                                                                                                                         
  29     breakpoint()                                                                                                                                                       
  30                                                                                                                                                                        
  31     urlpatterns = [                                                                                                                                                    
  32  ->     path('',TemplateView.as_view(template_name='homepage.html'),name='home'),33         path('admin/',admin.site.urls),34         path('wcapi/',include('WeChat.urls')),38         path('cms/',include(wagtailadmin_urls)),39         path('documents/',include(wagtaildocs_urls)),40         path('pages/',include(wagtail_urls)),41         path('accounts/',include('allauth.urls')),42     ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)                                                                                                  
(Pdb++) dir()
['AbstractUser','DetailView','ListView','ModelForm','MonthArchiveView','Resident','TemplateView','__builtins__','__cached__','__doc__','__file__','__loader__','__name__','__package__','__spec__','admin','include','models','path','pdb','re_path','settings','static','wagtail_urls','wagtailadmin_urls','wagtaildocs_urls']
(Pdb++) 

(Pdb++) pp locals()
{'AbstractUser': <class 'django.contrib.auth.models.AbstractUser'>,'DetailView': <class 'django.views.generic.detail.DetailView'>,'ListView': <class 'django.views.generic.list.ListView'>,'ModelForm': <class 'django.forms.models.ModelForm'>,'MonthArchiveView': <class 'django.views.generic.dates.MonthArchiveView'>,'Resident': <class 'IoTSite.models.Resident'>,'TemplateView': <class 'django.views.generic.base.TemplateView'>,'__builtins__': {'ArithmeticError': <class 'ArithmeticError'>,'AssertionError': <class 'AssertionError'>,'AttributeError': <class 'AttributeError'>,'BaseException': <class 'BaseException'>,'BlockingIOError': <class 'BlockingIOError'>,'brokenPipeError': <class 'brokenPipeError'>,'BufferError': <class 'BufferError'>,'BytesWarning': <class 'BytesWarning'>,'ChildProcessError': <class 'ChildProcessError'>,'ConnectionAbortedError': <class 'ConnectionAbortedError'>,'ConnectionError': <class 'ConnectionError'>,'ConnectionRefusedError': <class 'ConnectionRefusedError'>,'ConnectionResetError': <class 'ConnectionResetError'>,'DeprecationWarning': <class 'DeprecationWarning'>,'EOFError': <class 'EOFError'>,'Ellipsis': Ellipsis,'EnvironmentError': <class 'OSError'>,'Exception': <class 'Exception'>,'False': False,'FileExistsError': <class 'FileExistsError'>,'FileNotFoundError': <class 'FileNotFoundError'>,'FloatingPointError': <class 'FloatingPointError'>,'FutureWarning': <class 'FutureWarning'>,'GeneratorExit': <class 'GeneratorExit'>,'IOError': <class 'OSError'>,'ImportError': <class 'ImportError'>,'ImportWarning': <class 'ImportWarning'>,'IndentationError': <class 'IndentationError'>,'IndexError': <class 'IndexError'>,'InterruptedError': <class 'InterruptedError'>,'IsADirectoryError': <class 'IsADirectoryError'>,'KeyError': <class 'KeyError'>,'KeyboardInterrupt': <class 'KeyboardInterrupt'>,'LookupError': <class 'LookupError'>,'MemoryError': <class 'MemoryError'>,'ModuleNotFoundError': <class 'ModuleNotFoundError'>,'NameError': <class 'NameError'>,'None': None,'NotADirectoryError': <class 'NotADirectoryError'>,'NotImplemented': NotImplemented,'NotImplementedError': <class 'NotImplementedError'>,'OSError': <class 'OSError'>,'OverflowError': <class 'OverflowError'>,'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>,'PermissionError': <class 'PermissionError'>,'ProcessLookupError': <class 'ProcessLookupError'>,'RecursionError': <class 'RecursionError'>,'ReferenceError': <class 'ReferenceError'>,'ResourceWarning': <class 'ResourceWarning'>,'RuntimeError': <class 'RuntimeError'>,'RuntimeWarning': <class 'RuntimeWarning'>,'StopAsyncIteration': <class 'StopAsyncIteration'>,'stopiteration': <class 'stopiteration'>,'SyntaxError': <class 'SyntaxError'>,'SyntaxWarning': <class 'SyntaxWarning'>,'SystemError': <class 'SystemError'>,'SystemExit': <class 'SystemExit'>,'TabError': <class 'TabError'>,'TimeoutError': <class 'TimeoutError'>,'True': True,'TypeError': <class 'TypeError'>,'UnboundLocalError': <class 'UnboundLocalError'>,'UnicodeDecodeError': <class 'UnicodeDecodeError'>,'UnicodeEncodeError': <class 'UnicodeEncodeError'>,'UnicodeError': <class 'UnicodeError'>,'UnicodeTranslateError': <class 'UnicodeTranslateError'>,'UnicodeWarning': <class 'UnicodeWarning'>,'UserWarning': <class 'UserWarning'>,'ValueError': <class 'ValueError'>,'Warning': <class 'Warning'>,'ZeroDivisionError': <class 'ZeroDivisionError'>,'__build_class__': <built-in function __build_class__>,'__debug__': True,'__doc__': "Built-in functions,exceptions,and other objects.\n\nNoteworthy: None is the `nil' object; Ellipsis represents `...' in slices.",'__import__': <built-in function __import__>,'__loader__': <class '_frozen_importlib.Builtinimporter'>,'__name__': 'builtins','__package__': '','__spec__': ModuleSpec(name='builtins',loader=<class '_frozen_importlib.Builtinimporter'>),'abs': <built-in function abs>,'all': <built-in function all>,'any': <built-in function any>,'ascii': <built-in function ascii>,'bin': <built-in function bin>,'bool': <class 'bool'>,'breakpoint': <built-in function breakpoint>,'bytearray': <class 'bytearray'>,'bytes': <class 'bytes'>,'callable': <built-in function callable>,'chr': <built-in function chr>,'classmethod': <class 'classmethod'>,'compile': <built-in function compile>,'complex': <class 'complex'>,'copyright': copyright (c) 2001-2021 Python Software Foundation.
All Rights Reserved.

copyright (c) 2000 BeOpen.com.
All Rights Reserved.

copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.

copyright (c) 1991-1995 Stichting Mathematisch Centrum,Amsterdam.
All Rights Reserved.,'credits':     Thanks to CWI,CNRI,BeOpen.com,Zope Corporation and a cast of thousands
    for supporting Python development.  See www.python.org for more information.,'delattr': <built-in function delattr>,'dict': <class 'dict'>,'dir': <built-in function dir>,'divmod': <built-in function divmod>,'enumerate': <class 'enumerate'>,'eval': <built-in function eval>,'exec': <built-in function exec>,'exit': Use exit() or Ctrl-D (i.e. EOF) to exit,'filter': <class 'filter'>,'float': <class 'float'>,'format': <built-in function format>,'frozenset': <class 'frozenset'>,'getattr': <built-in function getattr>,'globals': <built-in function globals>,'hasattr': <built-in function hasattr>,'hash': <built-in function hash>,'help': Type help() for interactive help,or help(object) for help about object.,'hex': <built-in function hex>,'id': <built-in function id>,'input': <built-in function input>,'int': <class 'int'>,'isinstance': <built-in function isinstance>,'issubclass': <built-in function issubclass>,'iter': <built-in function iter>,'len': <built-in function len>,'license': Type license() to see the full license text,'list': <class 'list'>,'locals': <built-in function locals>,'map': <class 'map'>,'max': <built-in function max>,'memoryview': <class 'memoryview'>,'min': <built-in function min>,'next': <built-in function next>,'object': <class 'object'>,'oct': <built-in function oct>,'open': <built-in function open>,'ord': <built-in function ord>,'pow': <built-in function pow>,'print': <built-in function print>,'property': <class 'property'>,'quit': Use quit() or Ctrl-D (i.e. EOF) to exit,'range': <class 'range'>,'repr': <built-in function repr>,'reversed': <class 'reversed'>,'round': <built-in function round>,'set': <class 'set'>,'setattr': <built-in function setattr>,'slice': <class 'slice'>,'sorted': <built-in function sorted>,'staticmethod': <class 'staticmethod'>,'str': <class 'str'>,'sum': <built-in function sum>,'super': <class 'super'>,'tuple': <class 'tuple'>,'type': <class 'type'>,'vars': <built-in function vars>,'zip': <class 'zip'>},'__cached__': '/usr/src/app/IoTSite/__pycache__/urls.cpython-37.pyc','__doc__': 'IoTSite URL Configuration\n'
            '\n'
            'The `urlpatterns` list routes URLs to views. For more information please see:\n'
            '    https://docs.djangoproject.com/en/2.2/topics/http/urls/\n'
            'Examples:\n'
            'Function views\n'
            '    1. Add an import:  from my_app import views\n'
            "    2. Add a URL to urlpatterns:  path('',views.home,name='home')\n"
            'Class-based views\n'
            '    1. Add an import:  from other_app.views import Home\n'
            "    2. Add a URL to urlpatterns:  path('',Home.as_view(),name='home')\n"
            'Including another URLconf\n'
            '    1. Import the include() function: from django.urls import include,path\n'
            "    2. Add a URL to urlpatterns:  path('blog/',include('blog.urls'))\n",'__file__': '/usr/src/app/IoTSite/urls.py','__loader__': <_frozen_importlib_external.sourceFileLoader object at 0x7faeeac18450>,'__name__': 'IoTSite.urls','__package__': 'IoTSite','__spec__': ModuleSpec(name='IoTSite.urls',loader=<_frozen_importlib_external.sourceFileLoader object at 0x7faeeac18450>,origin='/usr/src/app/IoTSite/urls.py'),'admin': <module 'django.contrib.admin' from '/usr/local/lib/python3.7/site-packages/django/contrib/admin/__init__.py'>,'include': <function include at 0x7faeec33c0e0>,'models': <module 'django.db.models' from '/usr/local/lib/python3.7/site-packages/django/db/models/__init__.py'>,'path': functools.partial(<function _path at 0x7faeec33c050>,Pattern=<class 'django.urls.resolvers.RoutePattern'>),'pdb': <module 'pdb' from '/usr/local/lib/python3.7/site-packages/_pdbpp_path_hack/pdb.py'>,'re_path': functools.partial(<function _path at 0x7faeec33c050>,Pattern=<class 'django.urls.resolvers.RegexPattern'>),'settings': <LazySettings "IoTSite.settings">,'static': <function static at 0x7faeeac1a3b0>,'wagtail_urls': <module 'wagtail.core.urls' from '/usr/local/lib/python3.7/site-packages/wagtail/core/urls.py'>,'wagtailadmin_urls': <module 'wagtail.admin.urls' from '/usr/local/lib/python3.7/site-packages/wagtail/admin/urls/__init__.py'>,'wagtaildocs_urls': <module 'wagtail.documents.urls' from '/usr/local/lib/python3.7/site-packages/wagtail/documents/urls.py'>}
(Pdb++) 


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?