IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【django】用户注册状态保持、注册成功页面跳转到新闻页功能实现【11】 -> 正文阅读

[Python知识库]【django】用户注册状态保持、注册成功页面跳转到新闻页功能实现【11】

说明:

如果需求是注册成功后即表示?户登?成功,那么此时可以在注册成功后实现状态保持
如果需求是注册成功后不表示?户登?成功,那么此时不?在注册成功后实现状态保持
芒果头条的需求是:注册成功后即表示?户登?成功

1. login()?法介绍

1、?户登?本质:
状态保持
将通过认证的?户的唯?标识信息(?如:?户ID)写?到当前浏览器的cookie 和服务端的 session 中。

2、login()?法:

Django?户认证系统提供了login()?法。

封装了写?session的操作,帮助我们快速登??个?户,并实现状态保持。

3、login()位置:
django.contrib.auth.__init__.py?件中。
login(request, user, backend=None)

4、 状态保持 session
数据存储的位置:Redis数据库的1号库

# 配置Redis数据库
CACHES = {
    "default": { # 默认
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://192.168.17.3:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "session": { # session
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://192.168.17.3:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "verify_code": { # 验证码
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://192.168.17.3:6379/2",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

2. login()?法登??户

#todo 保存注册数据(入库操作)
try:
    user=Users.objects.create_user(username=username,password=password,phone=phone)
except DatabaseError:
    return render(request,'userapp/register.html',{'reg_error_msg':'注册失败'})

#todo 状态保持功能
login(request,user)

用户注册成功后进入到新闻首页

#todo 用户注册成功后返回响应结果
return redirect(reverse('newsapp:index'))

3、注册成功之后,跳转到新闻页面,先创建新闻子应用

python ../../manage.py startapp newsapp

注册子应用

4、配置路由

主路由

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^',include('userapp.urls')),
    re_path('^',include(('newsapp.urls','newsapp'),namespace='newsapp'))
]

子路由

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

urlpatterns=[
    re_path('^$',views.IndexView.as_view(),name='index')
]

创建视图

from django.shortcuts import render
from django.views.generic.base import View
# Create your views here.
class IndexView(View):
    def get(self,request):
        return render(request,'newsapp/index.html')

5、创建新闻模板templates

在这里插入图片描述

6、注册操作

注册成功后,进入新闻首页

7、??获取当前会话值

<ul class="header-user-links">
      {% if user.username %}
          欢迎您! <span style="font-weight: bolder;">[ {{ user.username }} ]</span>
          &emsp;<a href="/logout/">退出登录</a>&nbsp;
          {% else %}
          <li>
              <a href="/login/">登录</a>&nbsp;&nbsp;&nbsp;
              <a href="/register/">注册</a>
          </li>
      {% endif %}
</ul>

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:24:12  更:2022-04-24 09:24:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:06:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码