• 129-django工程中,在views函数里,让页面跳转到其他app的模板页面(跨app跳转)


    两个工程都是一模一样的格局,定义自己的urls.py文件,include到项目的根urls里,然后编写自己的views函数,自己的templates。

    要实现跳转很简单,首先看原来的views函数:

    from django.shortcuts import render, get_object_or_404, reverse
    from django.http import HttpResponseRedirect, HttpResponse
    from django.contrib.auth import authenticate
    from django.contrib.auth.models import User
    from .models import ExUser
    from .forms import UserLoginForm, UserRegForm
    
    
    def login(request):
        if request.method != 'POST':
            form = UserLoginForm
            context = {'form': form}
            return render(request, 'login.html', context)
        else:
            username = request.POST['username']
            password = request.POST['password']
            login_user = authenticate(request, username=username, password=password)
            if login_user is not None:
                return HttpResponseRedirect(reverse('simplesite:login_ok'))
            else:
                return HttpResponse('login wrong!')
    

      

    可以发现,当登录成功后,需要跳转到其他app的页面,比如是一个登录成功后的页面。因为我们为注册和登录功能专门设置了一个app,而实际的内容肯定放在另一个app里,这就涉及到了跨app跳转。

    具体的做法是:

    先完成2个引用:

    from django.shortcuts import render, get_object_or_404, reverse
    from django.http import HttpResponseRedirect, HttpResponse

    然后使用写法:

    return HttpResponseRedirect(reverse('simplesite:login_ok'))

    最关键的写法是reverse里的内容:用引号包括,url的命名空间(通常等于app名称): 某个path的名称

    完成这一步后,后续就是simplesite内部的逻辑,从url——》views函数——》模板。

  • 相关阅读:
    安装 Android 运行环境
    Sea.js
    css hack 兼容性
    solr全文检索基本原理
    Solr初步学习
    jquery中ajax的用法
    Javascript的模块化编程
    html 标签
    CSS盒子模型
    python 初学03 Eric+PyQt+python IDE与界面程序
  • 原文地址:https://www.cnblogs.com/lzhshn/p/13585819.html
Copyright © 2020-2023  润新知