.
├── 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. fedora23然后创建workspace?或者说是panel面板?

    好像在fedora23中 无法再添加工作空间workspace. 系统会自动的在非空工作空间后面再生成一个空的工作空间. 而且 工作空间 好像不只 4个, 可以有很多个. panel面板好像也不能添加 ...

  2. MongoDB学习【四】—pymongo操作mongodb数据库

    一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...

  3. 接口自动化之提取响应结果(raw、json)

    做接口测试时,我们一般会取得响应结果的部分值,来与预期结果对比,做断言 目录 1.响应结果类型 2.json响应结果的提取 3.raw响应结果的提取 1.响应结果类型 通过fiddler的respon ...

  4. 【USACO18JAN】MooTube

    原文链接:https://blog.csdn.net/Patrickpwq/article/details/86656456 给定一棵n个点的树(n=1e5),有边权, 两点间距离定义为两点路径上的 ...

  5. 前端 CSS的选择器 属性选择器

    属性选择器,字面意思就是根据标签中的属性,选中当前的标签. 属性选择器 通常在表单控件中 使用比较多 根据属性查找 /*用于选取带有指定属性的元素.*/ <!DOCTYPE html> & ...

  6. 如何在Web工程中实现任务计划调度

    转载自: http://www.oschina.net/question/146385_37793?sort=time 下面就Servlet侦听器结合Java定时器来讲述整个实现过程.要运用Servl ...

  7. <每日一题> Day4:CodeForces-1042A.Benches(二分 + 排序)

    题目链接 参考代码: /* 排序 + 每次取小 #include <iostream> #include <algorithm> using namespace std; co ...

  8. [2019杭电多校第七场][hdu6646]A + B = C(hash)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6646 题意为求a*10x+b*10y=c*10z满足公式的任意一组解x,y,z. 因为c有可能会由a+ ...

  9. 6、 逻辑回归(Logistic Regression)

    6.1 分类问题 在分类问题中,你要预测的变量

  10. CSS3进度条动画

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...