django - 页面跳转

django 中的页面跳转方式

  • 转发 (render)
  • 重定向 (redirect)

转发 render

服务器默认的跳转方式是转发

转发的特点:

  1. 地址栏地址不会发生改变
  2. 一次请求
  3. 可以携带数据到模板中
  4. 只能在服务器内部进行转发

重定向 redirect

重定向的特点:

  1. 地址栏会发生改变
  2. 2次请求
  3. 不能够携带数据到模板
  4. 重定向可以重定向到一个外部请求上(如 https://www.baidu.com)

重定向发送2次请求的原因:

当用户发送请求到后台处理数据的时候,后台如果使用 redirect 做页面跳转的话;
那么服务器会响应一个特殊的头信息包含一个 Content-length:0,一个参数 Location 和一个 302 状态码;
那么浏览器接收到这个特殊的头信息后,会自动获取 Location 对应的值,并自动发送第二次请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django ,登录页面跳转通常需要以下步骤: 1. 在 `views.py` 文件定义一个函数处理登录逻辑,可以使用 Django 自带的 `LoginView` 或者自定义视图。 2. 在 `urls.py` 文件配置登录页面的 URL,指向上一步定义的登录视图函数。 3. 在模板文件编写登录表单,表单的 `action` 属性应该指向登录 URL,这样用户提交表单时就会触发登录视图函数。 4. 在登录视图函数处理用户提交的表单数据,验证用户身份,如果登录成功则跳转指定页面,否则返回错误信息。 下面是一个简单的示例代码: **views.py:** ```python from django.contrib.auth.views import LoginView class CustomLoginView(LoginView): template_name = 'login.html' ``` **urls.py:** ```python from django.urls import path from .views import CustomLoginView urlpatterns = [ path('login/', CustomLoginView.as_view(), name='login'), ] ``` **login.html:** ```html {% extends 'base.html' %} {% block content %} <form method="post" action="{% url 'login' %}"> {% csrf_token %} {{ form.as_p }} <button type="submit">登录</button> </form> {% endblock %} ``` 在这个示例,我们使用了 `LoginView` 类来处理登录逻辑,并且自定义了登录页面的模板。在 `urls.py` 文件,将 `/login/` URL 映射到 `CustomLoginView` 视图函数。在登录模板 `login.html` ,我们使用 Django 自带的表单组件 `{{ form.as_p }}` 来生成登录表单,并将表单的 `action` 属性设置为登录 URL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值