Djando的传参

Django传参

1.“?”传参

1.模板页面

主路由

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('web.urls',namespace='index'))
]

 {% for goods in goods_page %}
            <tr>
                <td>{{ forloop.counter }}</td>
                <td>{{ goods.name }}</td>
                <td>{{ goods.price }}</td>
                <td><img src="{{ goods.image }}" alt="图片" width="100" height="100"></td>
                <td>
                    <a href="{% url 'index:detail' %}?id={{ goods.id }}" >修改</a>
                    <a href="{% url 'index:delete' goods.id %}" >删除</a>

                </td>
            </tr>
        {% endfor  %}

在<a href="{% url 'index:detail' %}?id={{ goods.id }}" 中,?之后为传递的参数

不用“命名空间”的?传参

<script type="text/javascript">
      $("#pagination").pagination({
        currentPage:{{ current_page }},
        totalPage:{{ total_page }},
        callback:function (current) {
        	#注意:加上'http://'
            window.location.href="http://127.0.0.1:8000/?p="+current

        }
    });
</script>

2(1).子路由页面urls.py(有:类视图)第一种方法

1.path('detail/', views.DetailView.as_view(), name='detail'),

3(1)views.py 接收参数

def get(self,request):
    gid=request.GET.get('id')     #从路由中取出参数     注意:这里是request.GET而不是request.POST。								#id是模板中自动生成的,所以用GET。如果是手动填上去的用POST获取。
    goods=models.Goods.objects.filter(id=gid).first()
    return render(request,'detail.html',{'goods':goods})

2(2).路由页面urls.py(无:类视图)第二种方法

path('delete/int:gid', views.DeleteView.as_view(), name='delete'),

3(3).views.py接收参数()

class DeleteView(View):
    def get(self,request,gid):        #取出路由中的参数
        goods=models.Goods.objects.filter(id=gid).first()
        goods.delete()
        return redirect(reverse('index:show'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值