• Django2 + ORM 做一个简单的登陆


    .
    ├── db.sqlite3
    ├── manage.py
    ├── myormLogin
    │   ├── __init__.py
    │   ├── __pycache__
    │   │   ├── __init__.cpython-36.pyc
    │   │   ├── settings.cpython-36.pyc
    │   │   ├── urls.cpython-36.pyc
    │   │   └── wsgi.cpython-36.pyc
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    └── ormlogin
        ├── __init__.py
        ├── __pycache__
        │   ├── __init__.cpython-36.pyc
        │   ├── admin.cpython-36.pyc
        │   ├── models.cpython-36.pyc
        │   ├── urls.cpython-36.pyc
        │   └── views.cpython-36.pyc
        ├── admin.py
        ├── apps.py
        ├── migrations
        │   ├── 0001_initial.py
        │   ├── 0002_auto_20180724_0924.py
        │   ├── __init__.py
        │   └── __pycache__
        │       ├── 0001_initial.cpython-36.pyc
        │       ├── 0002_auto_20180724_0924.cpython-36.pyc
        │       └── __init__.cpython-36.pyc
        ├── models.py
        ├── templates
        │   ├── index.html
        │   ├── login.html
        │   ├── user_detail.html
        │   ├── user_edit.html
        │   └── user_info.html
        ├── tests.py
        ├── urls.py
        └── views.py

    项目名/urls.py

    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('cmdb/',include("ormlogin.urls"))
    ]

    app/urls.py

    from django.urls import path
    from ormlogin import views
    
    urlpatterns = [
    path('login/',views.login),
    path('index/', views.index),
    path('user_info/',views.user_info),
    path('userdetail/<int:nid>/',views.user_detail),
    path('userdel/<int:nid>/',views.user_del),
    path('useredit/<int:nid>/',views.user_edit),
    ]

    models.py

    from django.db import models
    
    # Create your models here.
    class UserInfo(models.Model):
        username = models.CharField(max_length=32)
        password = models.CharField(max_length=64)

    views.py

    from django.shortcuts import render, HttpResponse, redirect
    from ormlogin import models
    
    
    # Create your views here.
    
    def index(request):
        return render(request, 'index.html')
    
    
    def login(request):
        if request.method == "GET":
            return render(request, "login.html")
        elif request.method == "POST":
            u = request.POST.get('user')
            p = request.POST.get('pwd')
            obj = models.UserInfo.objects.filter(username=u, password=p).first()
            if obj == None:
                return redirect('/cmdb/index/')
            return render(request, "login.html")
        else:
            return redirect(request, "/index/")
    
    
    def user_info(request):
        if request.method == "GET":
            user_list = models.UserInfo.objects.all()
            return render(request, "user_info.html", {"user_list": user_list})
        elif request.method == "POST":
            u = request.POST.get('user')
            p = request.POST.get('pwd')
            models.UserInfo.objects.create(username=u, password=p)
            return redirect('/cmdb/user_info/')
    
    
    def user_detail(request, nid):
        obj = models.UserInfo.objects.filter(id=nid).first()
        return render(request, 'user_detail.html', {'obj': obj})
    
    
    def user_del(request, nid):
        obj = models.UserInfo.objects.filter(id=nid).delete()
        return redirect('/cmdb/user_info/')
    
    
    def user_edit(request, nid):
        if request.method == "GET":
            obj = models.UserInfo.objects.filter(id=nid).first()
            return render(request, 'user_edit.html', {'obj': obj})
        elif request.method == "POST":
            nid = request.POST.get('id')
            u = request.POST.get('username')
            p = request.POST.get('password')
            models.UserInfo.objects.filter(id=nid).update(username=u, password=p)
            return redirect('/cmdb/user_info/')

    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
         <div>
               欢迎您!
         </div>
    
         <div>
             <a class="menu" href="/cmdb/user_info/">管理1</a>
             <a class="menu" href="/cmdb/user_group/">管理2</a>
             <a class="menu">管理3</a>
         </div>
    </body>
    </html>

    login.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="/cmdb/login/" method="POST">
    
        <p>
            <input type="text" name="user" placeholder="用户名">
        </p>
        <p>
            <input type="text" name="pwd" placeholder="密码">
        </p>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>

    user_detail.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div style="height: 48px; background-color: black;color: white">
        欢迎您!
    </div>
    <div style="position: absolute; top: 48px; bottom: 0; left:0;  200px; background-color: aqua">
        <a class="menu" href="/cmdb/user_info/">管理1</a>
        <a class="menu" href="cmdb/user_group/">管理2</a>
        <a class="menu">管理3</a>
    </div>
    <div style="position: absolute; top: 48px; left: 210px; bottom: 0;right: 0; overflow: auto">
        <h1>用户详细信息:</h1>
        <h5>{{ obj.id }}</h5>
        <h5>{{ obj.name }}</h5>
        <h5>{{ obj.password }}</h5>
    </div>
    </body>
    </html>

    user_edit.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div style="height: 48px; background-color: black;color: white">
        欢迎您!
    </div>
    <div style="position: absolute; top: 48px; bottom: 0; left:0;  200px; background-color: aqua">
        <a class="menu" href="/cmdb/user_info/">管理1</a>
        <a class="menu" href="cmdb/user_group/">管理2</a>
        <a class="menu">管理3</a>
    </div>
    <div style="position: absolute; top: 48px; left: 210px; bottom: 0;right: 0; overflow: auto">
        <h1>编辑用户:</h1>
        <form method="POST" action="/cmdb/useredit/{{ obj.id }}/">
            <input style="display: none" type="text" name="id" value="{{ obj.id }}"/>
            <input type="text" name="username" value="{{ obj.username }}"/>
            <input type="text" name="password" value="{{ obj.password }}"/>
            <input type="submit" value="修改"/>
        </form>
    </div>
    </body>
    </html>

    user_info.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div style="height: 48px; background-color: black;color: white">
        欢迎您!
    </div>
    <div style="position: absolute; top: 48px; bottom: 0; left:0;  200px; background-color: aqua">
        <a class="menu" href="/cmdb/user_info/">管理1</a>
        <a class="menu" href="cmdb/user_group/">管理2</a>
        <a class="menu">管理3</a>
    </div>
    <div style="position: absolute; top: 48px; left: 210px; bottom: 0;right: 0; overflow: auto">
        <h1>编辑用户:</h1>
        <form method="POST" action="/cmdb/useredit/{{ obj.id }}/">
            <input style="display: none" type="text" name="id" value="{{ obj.id }}"/>
            <input type="text" name="username" value="{{ obj.username }}"/>
            <input type="text" name="password" value="{{ obj.password }}"/>
            <input type="submit" value="修改"/>
        </form>
    </div>
    </body>
    </html>

    python3 manage.py runserver 跑起来

    浏览器输入地址:

    127.0.0.1:8000/cmdb/login

    直接登陆,随便输,没有做用户名和密码的验证

    在管理界面可以新添加用户,删除,编辑

    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    视频安防智能监控系统管理平台EasyNVS切换导航报错Cannot find module ‘@/views/sys/user’问题
    视频安防智能监控系统管理平台EasyNVS手机端扫码直播展示无信号但是PC端可以播放是什么原因?
    RTSP协议视频智能安防监控平台EasyNVR接入大华摄像头无法拉取H265格式视频流如何解决?
    RTSP协议视频智能安防监控平台EasyNVR录像播放及下载接口如何返回在线m3u8格式视频流?
    网页无插件直播视频平台EasyNVR老版本更新版本后CPU占用过高怎么解决?
    【解决方案】如何通过EasyNVR+EasyNVS搭建一套高清智能化的高速公路视频监控管理系统?
    【解决方案】现代化工厂如何实现智能化视频管理?EasyNVR安防视频监控系统打造智慧工厂
    【解决方案】EasyNVR视频边缘计算网关如何实现智慧消防?
    RTSP协议智能安防监控系统EasyNVR硬件设备IP探测软件EasySearcher无法运行如何修复?
    就地过年带旺“云游”,RTSP协议视频监控智能分析平台EasyNVR助力景区“慢直播”
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/9365868.html
Copyright © 2020-2023  润新知