.
├── 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; width: 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; width: 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; width: 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

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

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

Django2 + ORM 做一个简单的登陆的更多相关文章

  1. tkinter做一个简单的登陆页面

    做一个简单的登陆页面 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("900x3 ...

  2. tkinter做一个简单的登陆页面(十六)

    做一个简单的登陆页面 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("900x3 ...

  3. vue-cli3和element做一个简单的登陆页面

    1.先用vue-cli3创建一个项目 2.安装element模块 全局安装 npm i element-ui -S 3在main.js引入模块 import ElementUI from 'eleme ...

  4. 用EF DataBase First做一个简单的MVC3报名页面

    使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO. ...

  5. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截

    程序猿修仙之路--数据结构之你是否真的懂数组?   数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少. ...

  6. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...

  7. 使用React并做一个简单的to-do-list

    1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其virtual ...

  8. 【 D3.js 入门系列 --- 3 】 做一个简单的图表!

    前面说了几节,都是对文字进行处理,这一节中将用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为 ...

  9. 一起用HTML5 canvas做一个简单又骚气的粒子引擎

    前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...

随机推荐

  1. JS备忘--子父页面获取元素属性、显示时间,iframe之间互相调用函数

    //页面加载完成后执行 $(function () { getHW();}); //当用户改变浏览器大小改变时触发 $(window).resize(function () { setHW(); }) ...

  2. Linux_SquidProxyServer代理服务器

    目录 目录 Squid proxy server Web proxy server operating principle Squid features Setup squid server Setu ...

  3. X509格式的证书校验(基于GMSSL2019-06-15版本)

    实现X509格式证书的链式校验 // cert_public.cpp : Defines the exported functions for the DLL application. // #inc ...

  4. VS2013中使用本地IIS+域名调试ASP.NET项目

    VS2013中使用本地IIS+域名调试ASP.NET项目 在有些情况下需要使用本地的IIS作为调试服务器,如支持多域名的网站,这里记录下如何使用. 1.修改本机hosts文件. 路径:C:\Windo ...

  5. 东软、天健、金仕达、杭创、中联、NECHIS、军字一号 HIS产品的比较

    HIS主流厂商产品介绍1.沈阳东软医疗系统有限公司创立于1998年公司是中国目前最大的软件集团——东软集团为技术和资源依托,以研制生产大型医疗设备为主,同时为医院数字化提供全面解决方案.但是,公司改制 ...

  6. [Python3] 016 字典:给我一块硬盘,我可以写尽天下!

    目录 0 字典的独白 1 字典的创建 2 字典的特性 3 字典的常见操作 (1) 数据的访问.更改与删除 (2) 成员检测 (3) 遍历 4 字典生成式 5 字典的内置方法 6 可供字典使用的其它方法 ...

  7. Codeforces 833B 题解(DP+线段树)

    题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...

  8. BZOJ 4987 (树形DP)

    ###题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4987 ###分析 先考虑贪心,显然k个节点形成一棵树 求出树的直径,显然直径应该只被经 ...

  9. wamp 环境的配置

    安装完wamp之后,基本不用配置什么环境,只要将mysql添加到你的环境变量中去即可.

  10. Django:django-debug-toolbar模块

    简介: Django的django-debug-toolbar 模块是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. GitHub源文件下载地址 ...