当前位置: 移动技术网 > IT编程>脚本编程>Python > django跳转页面传参

django跳转页面传参

2019年12月23日  | 移动技术网IT编程  | 我要评论

薰樱子,曹锟老宅,查理格林

1、如果在反转url的时候,需要添加参数,那么可以通过传递'kwargs'参数到'reverse'函数中。实例代码:

urls.py

from django.urls import path, re_path
from app01 import views

urlpatterns = [
    path('article/<year>/<month>/',views.article,name='article'),
    path('', views.login.as_view(), name="login"),
    ]

views.py

from django.shortcuts import httpresponse, redirect, reverse
from django.contrib.auth.models import user, 
from django.views.generic import view
from django.contrib.auth import authenticate, login, 

class login(view):
    def get(self, request):
        return render(request, 'login.html')

    def post(self, request):
        username = request.post.get('username')
        passwd = request.post.get('passwd')
        user = authenticate(request, username=username, password=passwd)
        if user is not none:
            if user.is_active:
                login(request, user)
                # 登录成功跳转页面
                return redirect(reverse('article', kwargs={'year': 2019, 'month': 12}))
            else:
                err_msg = '用户未激活,请联系管理员进行激活'
        else:
            err_msg = '用户名或密码有误'
        return render(request, 'login.html', {"err_msg": err_msg, "username": username})


def article(request, year, month):
    return httpresponse('您查询的文章日期是:%s年%s月' %(year, month))

2、如果想要添加查询字符串的参数,则必须手动的进行拼接。实例代码如下:

login_url = reverse('login')+"?next=/"

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网