django url路由参数错误

出现错误:

  TypeError

  get() got an unexpected keyword argument ‘teacher_id

出错原因:

  view类中,get方法获得了一个多余的额参数,这个参数是通过url正则表达式模版取出的数据,url传递过来的参数

如何解决?

  get方法中再次增加一个参数去接收这个值,和url中取得正则匹配值声明的参数一样

#!/usr/bin/python3

__author__ = ‘beimenchuixue‘
__blog__ = ‘http://www.cnblogs.com/2bjiujiu/‘

# url中正则匹配取出一个参数
url(r‘^teacher/detail/(?P<teacher_id>(\d+))/$‘, TeacherDetailView.as_view(), name=‘teacher_detail‘),

# 而 view类中get方法并没有参数去接收这个正则匹配的参数
class TeacherDetailView(View):
    def get(self, request):
        return render(request, ‘teacher-detail.html‘, {})

# 通过添加 teacher_id 参数到get方法中,解决这个问题
class TeacherDetailView(View):
    def get(self, request, teacher_id):
        return render(request, ‘teacher-detail.html‘, {})

  

时间: 2024-08-02 07:03:37

django url路由参数错误的相关文章

Django URL路由分发系统

Django  URL路由分发系统 URL匹配过程 在Django中,我们使用urls.py模块处理url的分发 例:http://127.0.0.1:8080/abindex?a=1 1)去除域名和端口以及 /,剩下 abindex?a=1 2)拿 abindex?a=1 先到项目的 url.py 去匹配,然后拿剩下的index再到应用下面的urls.py去匹配 3)如果匹配成功,则调用相应的视图函数产生的内容返回给客户端.匹配失败的话则返回404错误. from django.conf.ur

mvc url路由参数的加密和解密

查看某个信息的时候一般会在url上加上该信息在数据库中对应的主键id(而且一般是自增的) url是这样子的 xxxDetail/1 , 虽然对于我们开发人员来说可以这种显式的数据库主键会方便调试过程,但是这种url的安全性比较低 所以想将这类id给加密了, 当然也不想在需要此处理的地方 添加上加密或解密的代码; 基于mvc的路由机制我们可以很方便的将 输出的url和输入的url参数进行自动的加密和解密: 一.通过扩展UrlHelper方法, 对参数进行加密 1 public static cla

Django URL传递参数的方法总结

1 无参数情况 配置URL及其视图如下: 1 2 3 4 (r'^hello/$', hello)   def hello(request): return HttpResponse("Hello World") 访问http://127.0.0.1:8000/hello,输出结果为“Hello World” 2 传递一个参数 配置URL及其视图如下,URL中通过正则指定一个参数: 1 2 3 4 (r'^plist/(.+)/$', helloParam)   def helloPa

django url 路由设置技巧

Django的url使用方法 利用Django开发站点.能够设计出很优美的url规则,假设url的匹配规则(包括正則表達式)组织得比較好,view的结构就会比較清晰.比較easy维护. 最简单的形式 from django.conf.urls import patterns, url urlpatterns = patterns('', url(r'^articles/2003/$', 'news.views.special_case_2003'), url(r'^articles/(\d{4}

Django 基础(一),项目创建,URL路由,数据库操作

一.安装Django 下载地址:https://www.djangoproject.com/download/ 1.tar zxvf Django-1.8.10.tar.gz 2.cd Django-1.8.10 3.python setup.py install 二.创建一个Django项目 django-admin startproject sitename 常用命令: python manage.py runserver 0.0.0.0 python manage.py startapp

Django URL(路由系统)

Django URL Django 1.11版本 URLconf官方文档 URL配置(URLconf)就像 Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 一.URLconf 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说明:

Django之url路由

Django之url路由 url路由介绍 url路由是关联url及其视图函数关系的过程. 作用就是使views里面处理数据的函数与请求的url建立映射关系 url路由配置 Django的url路由配置在settings.py文件中ROOT_URLCONF变量指定全局路由文件名称. 注意:默认创建项目的时候,就会配置好,如果想使用别的配置文件自行修改. Django的URL路由流程 Django查找全局urlpatterns变量(urls.py) 按照先后顺序,对URL逐一匹配urlpattern

Django基础二之URL路由系统

一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 基本格式  from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数传一个参数request,和

Django之URL路由系统

一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 基本格式  1 2 3 4 5 from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数传一个参