Django2.0的path方法无法使用正则表达式的解决办法
本人的django的版本是2.0.6
在django项目中,在urls.py文件中,匹配路由用的path方法,之前我用的都是url方法
写了一个path方法,使用正则表达式
from django.contrib import admin
from django.urls import path
from app1 import views urlpatterns = [
# path('admin/', admin.site.urls),
path('test/', views.Test.as_view()),
path('book/', views.Book_modelserializer_cbv.as_view()),
path('book/(?P<id>\d+)/', views.Book_Detail_modelserializer_cbv.as_view()),
]
但是我通过浏览器给django发送get请求,但是总是提示我匹配不到的视图函数
我的url的路径如下
http://127.0.0.1:8080/app1/book/1/
结果如下
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8080/app1/book/1/
Using the URLconf defined in cbv.urls, Django tried these URL patterns, in this order:
admin/
app1/ test/
app1/ book/
app1/ book/(?P<id>\d+)/
The current path, app1/book/1/, didn't match any of these.
感觉很奇怪,为什么我明明写了带正则表达式的url匹配项,但是为什么匹配不到呢?
查看django的文档,路径如下
https://docs.djangoproject.com/en/2.0/topics/http/urls/
发现django2.0版本还有个re_path的方法,这个方法才可以使用正则表达式
使用re_path方法,就可以使用正则表达式了,枉我学了这么多年的django了,惭愧惭愧
from django.contrib import admin
from django.urls import path
from app1 import views
from django.urls import re_path
urlpatterns = [
# path('admin/', admin.site.urls),
path('test/', views.Test.as_view()),
path('book/', views.Book_modelserializer_cbv.as_view()),
re_path('book/(?P<id>\d+)/', views.Book_Detail_modelserializer_cbv.as_view()),
]
这样就可以正常匹配到我们想要的url了
Django2.0的path方法无法使用正则表达式的解决办法的更多相关文章
- 【转】Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)
原文网址:http://www.blogjava.net/anchor110/articles/355699.html 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方包,添 ...
- Android5.0以下drawable tag vector错误的解决办法(转发)
Android5.0以下drawable tag vector错误的解决办法 在Androi 5.0以下的设备可能会报这样的错误: Caused by: org.xmlpull.v1.XmlPullP ...
- 未能加载文件或程序集"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad的真正解决办法
未能加载文件或程序集"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3 ...
- C# 数据为空,不能对NULL调用此方法或属性的解决办法
在运行C#项目时,报出了以下错误,错误原因是数据库中的值为null时,查询时会触发该错误提示 部分源代码如下: public List<Student> findData2() { ; / ...
- Django2.0版本 path与Django1.x版本url正则匹配问题
Django1.x版本url正则匹配如下: Django2.0版本正则匹配则要导入re_path模块如下:
- spring boot @ResponseBody转换JSON 时 Date 类型处理方法,Jackson和FastJson两种方式,springboot 2.0.9配置fastjson不生效官方解决办法
spring boot @ResponseBody转换JSON 时 Date 类型处理方法 ,这里一共有两种不同解析方式(Jackson和FastJson两种方式,springboot我用的1.x的版 ...
- SecureCRT 7.2.0 Mac版密码无法保存的解决办法
参考:http://jingyan.baidu.com/article/915fc414fda5fb51394b20bd.html 我之前在网上找的解决办法都是SecureCRT 7.2.0 Mac ...
- Redis 3.0版本启动时出现警告的解决办法
原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...
- Python报错“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)”的解决办法
最近在用Python处理中文字符串时,报出了如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ...
随机推荐
- redis 学习笔记1(安装以及控制台命令)
为什么要学习这个? 分布式技术必会,得益于redis的设计理念,内存数据库,epoll(多路复用)模型,单线程模型除去了锁和上下文切换,提高了性能.单线程保证执行顺序(轮询),在分布式环境下对于数据的 ...
- js 购物车的实现
购物车原理:创建一个构造函数,把涉及到的项目写成方法,然后把这些方法放到构造函数的原型对象上,通过按钮绑定,调用原型对象上的方法,实现对涉及项目的改变 html代码: <!DOCTYPE htm ...
- Mastering Creativity:A brief guide on how to overcome creative blocks
MASTERING CREATIVITY, 1st EditionThis guide is free and you are welcome to share it withothers.From ...
- 更换Notepad++主题与字体(下载与配置)
本文推荐一款自用主题----tomorrow-theme!其github上有着绝大多数IDE和文本编辑器的这个主题的适配文件.可以在README中先预览一下你要的主题的具体名称.链接:https: ...
- Linux 创建用户 限制SFTP用户只能访问某个目录
Linux 限制SFTP用户只能访问某个目录 1. 新建用户并设置密码 > useradd suser > passwd suser // 输入密码 2. 设置sshd配置文件 > ...
- Layout两列定宽中间自适应三列布局
最容易理解的一种方法,以中间内容为主体,通过 margin 或者 padding 将两侧撑开,最后用 absolute 定位两侧 html: <div class="container ...
- jquery val() text() html()的区别
value()主要用在表单元素上,如果其他的元素获取value是通过attract()的方法,text()是获取元素的纯文本,如果text(“content”)就会更改元素的文本内容:html()获取 ...
- opencv矩阵操作
1.初始化矩阵: 方式一.逐点赋值式: CvMat* mat = cvCreateMat( 2, 2, CV_64FC1 ); cvZero( mat ); cvmSet( mat, 0, 0, 1 ...
- 什么是webFlux
什么是webFlux 左侧是传统的基于Servlet的Spring Web MVC框架,右侧是5.0版本新引入的基于Reactive Streams的Spring WebFlux框架,从上到下依次是R ...
- git 使用说明
git使用的一些说明 关于新用户1. 到优居客群里下载git客户端2. 安装之后打开git bash3. 生成密钥,执行如下命令: ssh-keygen -t rsa -C "你的邮箱 ...