Django基础架构与登录验证实现详解

沈亦白
沈亦白
发布时间:2026-10-14 | 3人浏览过
原创

本文详细解析Django项目的核心组件,包括URLconf路由映射、视图函数处理逻辑及settings配置。通过具体代码示例,演示如何构建登录接口,利用POST请求获取用户凭据,并在密码错误时通过视图传递错误信息至login.html模板进行前端展示,实现完整的登录验证流程。

Django核心组件解析

URLconf是Django应用中用于定义URL模式的关键Python模块。它负责将简单的正则表达式定义的URL路径映射到对应的视图函数,从而决定用户请求由哪个函数处理。

视图(Views)是Django的核心组件之一,主要职责是接收Web请求并返回相应的Web响应。响应内容形式多样,可以是HTML网页、重定向指令、404错误页面、XML文档或图片等。

settings模块是Django项目的配置文件,集中管理项目运行所需的各项参数。这包括已安装应用的配置、数据库连接信息、模块加载设置以及其他全局变量。

wsgis(通常指wsgi.py)是与WSGI兼容的Web服务入口点。它负责启动WSGI服务器,为整个Django项目提供服务的初始化和调度功能。

urls配置文件定义了项目的URL路由规则。通过配置urlpatterns列表,开发者可以将特定的URL模式绑定到具体的视图函数,实现请求的路由分发。


from django.conf.urls import url
from django.contrib import admin
from sign import views
urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^login',views.login),#login路径
]

r'^index/$'
匹配符  
r 字符串前面加“r”是为防止字符串出现类似"\t"字符时转义
^ 匹配字符串开头;在多行模式中匹配每一行的开头,如^abc,abc
$ 匹配字符串末尾;在多行模式中匹配每一行末尾,如abc$,abc

登录视图与错误处理实现


from django.shortcuts import render
from django.shortcuts import redirect #重新定向模块
 
def login(request):
   #包含用户提交的所有信息
   #获取用户提交方法
  error_msg = ""
  if request.method == "POST":
    #获取用户通过POST提交过来的数据
    user =request.POST.get('username',None)
    pwd =request.POST.get('password',None)
    if user == 'root' and pwd == '123':
      #去跳转到
      return redirect('www.baidu.com')
    else:
      #用户密码不匹配
      error_msg = '用户名或密码错误'
    # user = request.POST['user']
    # pwd = request.POST['pwd']
    # print(user,pwd)
  return render(request,'login.html',{'error_msg':error_msg})

配置文件与模板渲染

settings配置文件中包含了中间件(MIDDLEWARE)的设置。例如,示例代码中启用了SecurityMiddleware、SessionMiddleware等标准中间件,并注释掉了CsrfMiddleware以避免当前会话ID加密钥散列值不匹配导致的报错。


MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',#当前会话id加上密钥的散列值不注释的话会报错的
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

login.html模板负责渲染登录界面。该HTML文件包含一个指向/login路径的POST表单,用于收集用户名和密码。通过{{ error_msg }}变量,模板可以动态显示后端传递的错误提示信息,并以红色字体高亮显示。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    label{
    width:80px;
    text-align:right;
    display: inline-block;
    }
  </style>
</head>
<body>
 
    <form action="/login" method="post">
      <p>
        <label for="username">用户名:</label>
        <input name="username" type='text' placeholder='uaername'><br>
        <label for="password">密码:</label>
        <input name="password" type='password' placeholder='password'><br>
        <input type="submit" value="登录"/>
        <span style="color:red;">{{ error_msg }}</span>
      </p>
  </form>
</body>
</html>

综上所述,本文介绍了Django项目的基本构成及登录验证的实现方法。希望这些内容能对读者学习Django有所帮助,也欢迎大家继续支持本站获取更多技术资源。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表