首页 > 其他分享 >Django实现文件上传、文件列表查看、修改、限流和日志记录4

Django实现文件上传、文件列表查看、修改、限流和日志记录4

时间:2023-08-13 16:57:23浏览次数:43  
标签:文件 用户 py request upload Django 会话 限流 login

Django实现文件上传、文件列表查看、修改、限流和日志记录4

本章添加用户认证功能,属于安全模块。

用户认证

在Django中,默认情况下,用户的用户名和密码是存储在数据库中的。Django提供了内置的用户模型(User模型),它可以管理用户的认证和授权。

配置数据库

  1. 在file_upload/settings.py文件中,配置数据库连接信息,例如使用SQLite数据库:
# file_upload/settings.py

# ...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

# ...

添加用户和数据库表

#终端中运行以下命令来创建数据库表
python manage.py migrate

#创建一个超级用户(管理员用户),用于登录和管理用户[admin 123456]:
#按照提示输入用户名、电子邮件和密码。
python manage.py createsuperuser

配置登录视图和登出视图

  1. 在file_upload_app/views.py文件中,添加用户登录视图和注销视图:
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages

def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('upload')
        else:
            messages.error(request, '登录失败,请检查用户名和密码')
    return render(request, 'login.html')

@login_required
def user_logout(request):
    logout(request)
    return redirect('login')

添加映射

  1. 在file_upload/urls.py文件中,添加URL映射来调用用户登录和注销视图:
from django.urls import path
from file_upload_app import views

urlpatterns = [
    ...
    path('login/', views.user_login, name='login'),
    path('logout/', views.user_logout, name='logout'),
    ...
]

引用登录验证

# 此处以登录验证模块为例

#上传视图
@login_required
def upload_file(request):
        #代码逻辑 。。。

 

登录会话

在Django中,会话的过期时间可以通过配置会话设置来控制。默认情况下,会话的过期时间是两周(14天)。

可以在file_upload/settings.py文件中配置会话的过期时间

会话的过期时间是相对于用户最后一次活动的时间计算的。如果用户在过期时间内有活动,会话将被刷新并延长过期时间。如果用户在过期时间内没有活动,会话将在过期后自动注销。

# file_upload/settings.py

# ...

SESSION_COOKIE_AGE = 60 * 60 * 24 * 14  # 两周,单位为秒,即14天的秒数

# ...

## 希望在用户关闭浏览器后立即注销会话,可以将SESSION_EXPIRE_AT_BROWSER_CLOSE设置为True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True

运行服务

python manage.py runserver

访问验证

#访问上传文件
localhost:8000/upload/

#跳转登录验证
http://localhost:8000/login/?next=/upload/

#访问查看文件【修改文件--实时生效】
http://localhost:8000/view/cicd.sh/

 

使用之前创建的超级用户(管理员用户)的用户名和密码进行登录。登录后,只要会话有效,你就可以访问上传、查看和修改功能,直到注销或会话过期。

 

 

 

 

 

标签:文件,用户,py,request,upload,Django,会话,限流,login
From: https://www.cnblogs.com/weiweirui/p/17626785.html

相关文章

  • Web通用漏洞--文件上传
    Web通用漏洞--文件上传概述文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数......
  • Web通用漏洞--文件包含
    Web通用漏洞--文件包含文件包含原理在项目开发过程中,开发人员通常会将重复使用的函数写入单个文件中,在使用该类函数时,直接调用文件即可,无需重新编写,这种调用文件的过程成为文件包含。在文件包含过程中,如果用户可以控制所包含的文件,则为文件包含漏洞。文件包含函数PHP:include、......
  • ctfshow--web入门--文件上传
    ctfshow--web入门--文件上传web151(前端校验)题目中提示前端检验不可靠,应该对前端检验进行绕过检查前端代码进行修改,使php文件可以通过前端校验,成功上传后进行命令执行,找到flagweb152(content-type)通过前端校验后上传php文件显示文件类型不合规尝试抓包修改content-type......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录2
    Django实现文件上传、文件列表查看、修改、限流和日志记录2本章节优化新增功能使用ssh秘钥连接远程服务器进行文件上传使用ssh私钥连接远程服务器上传文件使用SSH私钥连接远程服务器并上传文件,你可以使用paramiko库来实现SSH连接和文件传输的功能。首先,确保你已经生成了SSH......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录1
    Django实现文件上传、文件列表查看、修改、限流和日志记录1上一章已经实现了文件的上传到项目的指定目录中,这章我们继续乘胜追击继续优化实现。一般都是上传文件到后端服务器上,因此需要建立一个远程服务器的连接,本章连接远程服务器实现文件上传实现点击上传本地文件到远程服务......
  • pyspark写入文件
    ##py_spark_rdd2py.py#py_learn##CreatedbyZ.Steveon2023/8/1311:39.##1.rdd.collect()将rdd变为list#2.rdd.reduce()不分组,对rdd数据做两两聚合frompysparkimportSparkConf,SparkContextconf=SparkConf().setMaster("local[*]")......
  • 文件属性
    简介linux是多用户系统,不同用户处于不同地位修改文件/目录所属用户与权限 chown(changeowner):修改所属用户与组。chmod(changemode):修改用户的权限。查看文件/目录所属用户和组ll或者ls-l 第一个字母:当为d则是目录当为-则是文件;若是l则表示为链......
  • chfs共享文件系统
    chfs简介官网地址:http://iscute.cn/chfsCuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:单个文件,核心功能无需其他文件跨平台运行,支持主流平台:Windows,Linux和Mac界面简洁,简单易用支持扫码下载和手机端访问,手机与电脑之间......
  • Typora上传文件到博客园解决图片问题
    EasyBlogImageForTypora使用Typora写作,图片即时同步到博客网站,无需第三方图床,写完可直接粘贴。支持网络图片上传。适用范围本程序基于.netcore3.1开发,支持在win-x64,macosx-x64系统运行,免安装。linux暂时不考虑,如果有需要再说。程序的上传服务是使用MetaWebBlogAPI,MetaWe......
  • Windows11 操作系统 SysWOW64 文件夹的作用
    Windows11操作系统中的SysWOW64文件夹是一个重要的系统目录,它在某些方面扮演着特殊的角色。在这篇文章中,我将详细介绍SysWOW64文件夹的作用,并举例说明它在操作系统中的具体应用。首先,让我们了解一下该文件夹的背景和目的。SysWOW64文件夹是Windows64位操作系统中的一个......