在本文中,我们将带你了解djangourlpatterns中如何基于HTTP方法进行区分在这篇文章中,我们将为您详细介绍djangourlpatterns中如何基于HTTP方法进行区分的方方面面,并解
在本文中,我们将带你了解django urlpatterns中如何基于HTTP方法进行区分在这篇文章中,我们将为您详细介绍django urlpatterns中如何基于HTTP方法进行区分的方方面面,并解答django url path区别常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight、django 2 urlpatterns 中正则匹配路由、Django http 和 https 官网解答、Django URLconf中urlpatterns的Regular Expression语法说明。
本文目录一览:- django urlpatterns中如何基于HTTP方法进行区分(django url path区别)
- Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight
- django 2 urlpatterns 中正则匹配路由
- Django http 和 https 官网解答
- Django URLconf中urlpatterns的Regular Expression语法说明
django urlpatterns中如何基于HTTP方法进行区分(django url path区别)
我在查找有关此信息时遇到一些困难,这可能不是正确的方法。我想基于http方法(GET或POST或DELETE或PUT)将请求路由到两个不同的视图函数。
正如通常在REST API中所做的那样,这意味着基于HTTP方法,相同的URL具有不同的含义。
我在django的urls.py文件中看不到做到这一点的方法,我想要这样的东西:
url(r''^tasks$'', ''app.views.get_tasks'', method=''get''),url(r''^tasks$'', ''app.views.create_task'', method=''post''),
(注意:我正在使用django 1.4)
答案1
小编典典我认为您可以在不向URL添加一堆逻辑的情况下使用不同的函数来完成此操作(这从来都不是个好主意),但是您可以在函数中检查request方法:
def myview(request): if request.method == ''GET'': # Code for GET requests elif request.method == ''POST'': # Code for POST requests
您还可以切换到基于类的视图。然后,您只需要为每个HTTP方法定义一个方法:
class CreateMyModelView(CreateView): def get(self, request, *args, **kwargs): # Code for GET requests def post(self, request, *args, **kwargs): # Code for POST requests
如果您决定采用基于课程的路线,那么另一个不错的资源是http://ccbv.co.uk/。
Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight
总结
以上是小编为你收集整理的Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
django 2 urlpatterns 中正则匹配路由
django 2 urlpatterns 中正则匹配路由:
在项目的urls.py中导入re_path:
Django http 和 https 官网解答
概要: | 运行Werkzeug调试器的RunServerPlus典型runserver |
---|
介绍
此项要求您安装了Werkzeug WSGI实用程序。Werkzeug包含一个kick ass调试器,它可以提供良好的调试回溯并添加一个基于AJAX的调试器(允许在traceback的帧的上下文中执行代码)。此外,它提供了一个很好的源代码访问视图。
入门
要开始,我们只使用runserver_plus命令而不是普通的 runserver命令:
$ python manage.py runserver_plus
* Running on http://127.0.0.1:8000/
* Restarting with reloader...
Validating models...
0 errors found
Django version X.Y.Z, using settings ''screencasts.settings''
Development server is running at http://127.0.0.1:8000/
Using the Werkzeug debugger (http://werkzeug.pocoo.org/)
Quit the server with CONTROL-C.
注意:所有正常的runserver选项都适用。换句话说,如果您需要更改端口号或主机信息,您可以像平常一样进行更改。
用法
当发生异常时,将显示Werkzeug回溯页面,而不是默认的Django回溯页面。

除了典型的追溯信息,我们还有几个选项。将鼠标悬停在特定的追溯线上时会出现这些选项。请注意,右侧有两个按钮:

选项是:
查看源
这将显示回溯下方的源:

能够查看源文件非常方便,因为它提供了有关错误的更多上下文信息。实际的追溯区域突出显示,因此很容易发现。
UI的一个尴尬方面是页面不会滚动到底部。起初我认为没有发生任何事情因为这个。
交互式调试控制台
单击此按钮可打开您所在的追溯线下的新窗格。这是拍摄的钱:

基于ajax的控制台出现在窗格中,您可以开始调试。请注意,在上面的屏幕截图中,我做了一个print environ,以查看进入该函数的环境参数中的内容。
警告:绝不能在任何类型的生产环境中使用它。甚至没有快速问题检查。我不能强调这一点。交互式调试器允许您针对服务器评估python代码。你被警告过了。
SSL
runserver_plus还支持SSL,因此您可以轻松调试使用https时弹出的错误。要使用SSL,只需提供证书的文件名; 将自动生成密钥和证书文件:
$ python manage.py runserver_plus --cert-file cert.crt
Validating models...
0 errors found
Django version X.Y.Z, using settings ''mysite.settings''
Development server is running at http://127.0.0.1:8000/
Using the Werkzeug debugger (http://werkzeug.pocoo.org/)
Quit the server with CONTROL-C.
* Running on https://127.0.0.1:8000/
* Restarting with reloader
Validating models...
0 errors found
Django version X.Y.Z, using settings ''mysite.settings''
Development server is running at http://127.0.0.1:8000/
Using the Werkzeug debugger (http://werkzeug.pocoo.org/)
Quit the server with CONTROL-C.
运行此命令后,可以通过https://127.0.0.1:8000访问您的Web应用程序 。
您还会发现在当前工作目录中创建了两个文件:密钥文件和证书文件。如果再次运行上述命令,将重复使用这些证书文件,这样您就不必每次都从浏览器继续接受自己生成的证书。如果您已经拥有证书,您还可以为要使用的证书提供特定文件:
$ python manage.py runserver_plus --cert-file /tmp/cert.crt
请注意,如果要重用现有证书,则需要使用OpenSSL库和Werkzeug 0.9或更高版本。
要安装OpenSSL:
$ pip install pyOpenSSL
证书路径
您可以配置.crt和.key文件的不同路径。至少有一个--cert-file
或--key-file
必须定义为使用SSL。
您可以使用--cert-file
选项或不建议使用的--cert
选项(目前是别名)将路径设置为.crt文件--cert-file
。如果未设置此选项,则runserver_plus假定该选项与该文件位于同一目录中--key-file
。
您可以使用--key-file
选项将路径设置为.key文件。如果未设置此选项,则runserver_plus假定该选项与该文件位于同一目录中--cert-file
。
如果要创建新文件,则可以在没有扩展名的情况下传递文件名。将创建具有此名称和.crt和.key扩展名的正确文件。
配置
该RUNSERVERPLUS_SERVER_ADDRESS_PORT设置可以被配置为指定地址和端口的开发服务器应该绑定。
如果您发现自己频繁启动服务器:
$ python manage.py runserver_plus 0.0.0.0:8000
您可以使用设置自动将开发默认为地址/端口:
RUNSERVERPLUS_SERVER_ADDRESS_PORT = ''0.0.0.0:8000''
要确保Werkzeug可以登录到控制台,您可能需要在设置中添加以下内容:
LOGGING = {
...
''handlers'': { ... ''console'': { ''level'': ''DEBUG'', ''class'': ''logging.StreamHandler'', }, }, ''loggers'': { ... ''werkzeug'': { ''handlers'': [''console''], ''level'': ''DEBUG'', ''propagate'': True, }, }, }
IO调用和CPU使用
如gh625中所述, runserver_plus可以看到使用大量CPU并在空闲时生成许多I / O.
这是由于Werkzeug实施自动重新加载功能的方式。它支持两种通过stat轮询或文件系统事件进行自动重新加载的方法。
该统计轮询方法是相当蛮力和汽车无问题STAT这会导致CPU和IO负载系统调用。
如果可能的话尝试安装Watchdog软件包,这应该会自动导致Werkzeug使用 文件系统事件。
您可以在Werkzeug文档中阅读更多相关信息
使用默认值1秒的统计轮询时,您还可以增加轮询间隔。这将减少CPU负载,但代价是文件编辑需要更长时间才能获取。
这可以在django设置文件中设置两种方式:
RUNSERVERPLUS_POLLER_RELOADER_INTERVAL = 5
或作为一个commad行参数:
$ python manage.py runserver_plus --reloader-interval 5
调试器
以下有关调试器PIN的文本是从Werkzeug 文档中 逐字逐句获取的,其中包含调试器PIN。
从Werkzeug 0.11开始,调试器还受PIN保护。这是一个安全帮助程序,使得调试程序在生产中被利用的可能性降低,因为人们发生了使调试器保持活动状态的问题。默认情况下启用基于PIN的身份验证。
当调试器出现时,首次使用时它将提示输入打印到命令行的PIN。PIN以特定于项目的稳定方式生成。在某些情况下,可能无法在重新启动之间生成稳定的PIN,在这种情况下,可以通过环境变量WERKZEUG_DEBUG_PIN提供显式PIN。这可以设置为一个数字,并将成为PIN。此变量也可以设置为off值以完全禁用PIN检查。
--nopin
调用runserver_plus命令时,也可以通过传递参数来禁用PIN 。
如果PIN输入错误太多次,则需要重新启动服务器。
此功能不应该完全保护调试器。它旨在使攻击者更难以利用调试器。切勿在生产中启用调试器。
Django URLconf中urlpatterns的Regular Expression语法说明
基本上所有RE符号都可以在urlpatterns使用,本文主要将常用在网址上的符号进行整理
如何验证RE设计URL准确性?
有一个网站是做这方面测试:http://pythex.org/,界面如下:
使用方法也很简单:
1. Your regular expression 输入我们设计的RE
2. Your test string 输入要验证的网址字符串
3. Match result 会显示匹配的结果
关于django urlpatterns中如何基于HTTP方法进行区分和django url path区别的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight、django 2 urlpatterns 中正则匹配路由、Django http 和 https 官网解答、Django URLconf中urlpatterns的Regular Expression语法说明等相关知识的信息别忘了在本站进行查找喔。
本文标签: