• Python-Django 项目模块-使用自定义管理应用-登录(十二)


    Python-django 自定义模块开发

    第四章 Django 自定义模块-使用自定义用户管理模块进行应用管理


    前言

     本系列文章以一个简单的学校项目来做演示,项目中遇到的问题会一一记录下来,仅供学习参考使用

    此处学习版本 python3.8 django 4.0.6 bootstrap3 开发工具 VSCODE


     一、Django 创建用户应用程序

    系统默认的管理路径为:http://192.168.10.128:8000/admin/  你会看到自己的登录界面 需要输入账户密码

    python .\manage.py startapp school_web_users

     二、配置应用程序

    配置方法和业务模块一样的操作 将 此应用添加到 settings.py文件中

    1. # Application definition
    2. INSTALLED_APPS = [
    3. ## 引入自己的程序 放在最前面可以覆盖默认配置
    4. "school_web_grade",
    5. ## 用户应用
    6. "school_web_users",
    7. 'django.contrib.admin', ## 管理员站点
    8. 'django.contrib.auth', ## 认证授权系统
    9. 'django.contrib.contenttypes', ## 内容类型框架
    10. 'django.contrib.sessions', ## 会话框架
    11. 'django.contrib.messages', ## 消息框架
    12. 'django.contrib.staticfiles', ## 管理静态文件的框架
    13. ]

     三、配置路由地址 urls.py

    1. urlpatterns = [
    2. ## 用户应用
    3. path('/', include('school_web_users.urls')),
    4. ## 默认管理
    5. path('admin/', admin.site.urls),
    6. ## 引入子模块的路径
    7. path('school/', include('school_web_grade.urls')),
    8. ]

    四、在对应的 school_web_users 应用中创建urls.py文件

    1. from django.urls import path
    2. from django.urls import include
    3. from . import views
    4. ## 模块名称 url命名空间
    5. app_name = "school_web_users"
    6. urlpatterns = [
    7. ## 默认打开浏览器访问地址跳转方法
    8. path(route="", view=views.index),
    9. ## 配置默认的身份验证url
    10. path(route="", view=include('django.contrib.auth.urls'),name="login"),
    11. ]

    五、编写视图类方法 views.py

    1. from django.shortcuts import render
    2. from django.shortcuts import redirect
    3. from django.views import generic
    4. # Create your views here.
    5. def index(reqeust):
    6. # return render(reqeust,"index.html")
    7. ## 跳转到登录页
    8. return redirect("school_web_users:login")

    六、对应的登录页面login.html

    1. {% load i18n static %}
    2. html>
    3. <html>
    4. <head>
    5. <title>登录title>
    6. <meta charset="utf-8" />
    7. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    8. <meta name="viewport" content="width=device-width, initial-scale=1" />
    9. <link rel="stylesheet" href="/static/bootstrap-3.4.1/css/bootstrap.min.css" />
    10. <link rel="stylesheet" href="{% static 'bootstrap-3.4.1/css/bootstrap-theme.min.css' %}" />
    11. <link rel="stylesheet" href="{% static 'laydate-v5.3.1/theme/default/laydate.css' %}" />
    12. <script src="{% static 'js/jquery-3.2.1/jquery.min.js' %}">script>
    13. <script src="{% static 'js/popper-1.15.0/umd/popper.min.js' %}">script>
    14. <script src="{% static 'bootstrap-3.4.1/js/bootstrap.min.js' %}">script>
    15. <script src="{% static 'laydate-v5.3.1/laydate.js' %}">script>
    16. head>
    17. <body>
    18. <div class="container-fluid">
    19. <div class="row">
    20. <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
    21. <div class="container-fluid">
    22. <div class="navbar-header">
    23. <a class="navbar-brand" href="{% url 'school_web_grade:index'%}" style="padding-top:5px;">
    24. <img alt="Brand" src="/static/images/ico.png">
    25. a>
    26. <a class="navbar-brand" href="{% url 'school_web_grade:index'%}">陕西家里蹲大学师生信息管理系统a>
    27. div>
    28. div>
    29. nav>
    30. div>
    31. <div class="row" style="padding-top: 50px;padding-bottom: 50px;">
    32. <div class="panel panel-info ">
    33. <div class="panel-heading">系统登录div>
    34. <div class="panel-body ">
    35. <form class="form-horizontal " name="loginForm" id="loginForm" method="post" role="form" action="{% url 'school_web_users:login' %}">
    36. {% csrf_token %}
    37. <div class="form-group">
    38. <label for="username" class="col-sm-4 control-label">登录名:label>
    39. <div class="col-sm-4">
    40. <input type="text" class="form-control" id="username" name="username" placeholder="请输入登录名">
    41. div>
    42. div>
    43. <div class="form-group">
    44. <label for="password" class="col-sm-4 control-label">登录密码:label>
    45. <div class="col-sm-4">
    46. <input type="password" class="form-control" id="password" name="password" placeholder="请输入密码">
    47. div>
    48. div>
    49. <div class="form-group">
    50. <label for="password" class="col-sm-4 control-label">label>
    51. <div class="col-sm-4">
    52. <button type="submit" class="btn btn-primary">  button>
    53. <input type="hidden" name="next" value="{% url 'school_web_grade:index' %}" />
    54. div>
    55. div>
    56. form>
    57. {% if form.errors %}
    58. <div class="alert alert-danger">用户名或密码错误!div>
    59. {% endif %}
    60. div>
    61. div>
    62. div>
    63. <div class="row navbar navbar-default navbar-fixed-bottom" style="text-align: center; height: 40px;">
    64. <div class="bg-success" style="height: 100% ;padding-top: 15px;">
    65. 版权所有@copyRight 2013-2022 口袋里的小龙 开发框架 python3.8 bootstrap-3 Django4
    66. div>
    67. div>
    68. div>
    69. body>
    70. html>

    注意: 需要注意的是要在页面指定跳转的方法 登录成功

  • 相关阅读:
    JVM入门教程
    【网络】五种IO模型以及select编程详讲
    LeetCode 494 目标和
    【MySQL】MySQL中对数据库及表的相关操作
    绕过伪静态
    ping: mirrors.aliyun.com: Temporary failure in name resolution
    opencv入门建议
    校园网页设计成品 学校班级网页制作模板 dreamweaver网页作业 简单网页课程成品 大学生静态HTML网页源码
    C#两个表多条件关联写法
    nacos注册中心
  • 原文地址:https://blog.csdn.net/u010416069/article/details/126065818