django实例(1)
Urls.py
from django.contrib import admin
from django.conf.urls import url
from cmdb import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# path('home.html/', views.home),
url(r'^login/',views.login),
url(r'^home',views.home),
]
Cmdb-->Views.py
from django.shortcuts import render
# Create your views here.
import time
from django.shortcuts import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect
# def home(request):
#
# return HttpResponse('<h1>CMDB</h1>')
def login(request):
#包含用户提交的所有信息
#获取用户提交方法
# print(request.method)
error_msg=""
if request.method=="POST":
# 用户通过post提交过来的数据
user=request.POST.get('user',None)
pwd=request.POST.get('pwd',None)
if user=="root" and pwd=="123":
# 去跳转到
return redirect('/home') #跳转 并重定向
else:
# 用户名密码不匹配
error_msg="用户名或密码错误"
return render(request,'login.html',{'error_msg':error_msg}) #找到模板并返回给用户
# django替换'error_msg'
user_list=[
{'id':1, 'username':'haha','email':'asdsdd@126.com','gender':'男'},
{'id':2, 'username':'wulei','email':'asdsdd@126.com','gender':'男'},
{'id':3, 'username':'niuge','email':'asdsdd@126.com','gender':'男'},
]
# for index in range(20):
# temp={'username':'haha'+str(index),'email':'asdsdd@126.com','gender':'男'}
# user_list.append(temp)
def home(request):
if request.method=="POST":
# 获取用户提交的数据POST请求中
u=request.POST.get('username')
e=request.POST.get('email')
g=request.POST.get('gender')
temp = {'username': u, 'email':e, 'gender': g}
user_list.append(temp)
return render(request,'home.html',{'user_list':user_list})
#主机管理
#防火墙
#。。。
# def login(request):
# string = """
# <form>
# <input type='text'>
# </form>
# """
# f=open('templates/login.html','r',encoding='utf-8')
# data=f.read()
# f.close()
# return HttpResponse(data)
Static-->Commons.css
body{
background-color: #eeeeee;
}
Templates-->login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/commons.css"/>
<style>
label{
width:80px;
text-align: right;
display:inline-block ;
}
</style>
</head>
<body>
<form action="/login/" method="post">
<p>
<label for="username">用户名:</label>
<input id="username" name="user" type="text"/>
</p>
<p>
<label for="pwd_1">密码:</label>
<input id="pwd_1" name="pwd" type="password"/>
<input type="submit" value="提交"/>
<span style="color: red;">{{error_msg }}</span>
</p>
</form>
<script src="/static/jquery-1.12.4.js"></script>
</body>
</html>
Templates-->home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body style="margin: 0">
<div style="height: 48px;background-color: #dddddd"></div>
<div>
<form action="/home" method="post" >
<input type="text" name="username" placeholder="用户名">
<input type="text" name="email" placeholder="邮箱">
<input type="text" name="gender" placeholder="性别">
<input type="submit" value="添加">
</form>
</div>
<div>
<table>
{% for row in user_list %}
<tr>
<td>{{ row.username }}</td>
<td>{{ row.gender }}</td>
<td>{{ row.email }}</td>
<td>
<a href="/detail?nid={{row.id }}">查看详细</a> |
<a class="del" href="#" row-id="{{ row.id }}">删除</a>
</td>
</tr>
{% endfor %}
</table>
</div>
<div>
<form action="/del_host" method="post">
<input style="display: none" id="nid" type="text" name="nid">
<p>
<input type="submit"/>
<input type="button">
</p>
</form>
</div>
<script src="/static/jquery-1.12.4.js"></script>
<script>
$('.del').click(function () {
var row_id=$(this).attr('row-id');
$('#nid').val(row_id);
})
</script>
</body>
</html>
Templates-->home_bak.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body style="margin: 0">
<div style="height: 48px;background-color: #dddddd"></div>
<div>
<form action="/home" method="post" >
<input type="text" name="username" placeholder="用户名">
<input type="text" name="email" placeholder="邮箱">
<input type="text" name="gender" placeholder="性别">
<input type="submit" value="添加">
</form>
</div>
<div>
<table>
{% for row in user_list %}
<tr>
<td>{{ row.username }}</td>
<td>{{ row.gender }}</td>
<td>{{ row.email }}</td>
</tr>
{% endfor %}
</table>
</div>
</body>
</html>
Admin.py
from django.contrib import admin
from cmdb import models
# Register your models here.
admin.site.register(models.UserInfo)
admin.site.register(models.UserType)
Models.py
from django.db import models
# Create your models here.
class UserType(models.Model):
name=models.CharField(max_length=32)
class UserInfo(models.Model):
username=models.CharField(max_length=30)
pwd=models.CharField(max_length=32)
email=models.CharField(max_length=32)
user_type=models.ForeignKey(UserType,on_delete=models.CASCADE,)
创建超级用户 python manage.py createsuperuser xxx
django实例(1)的更多相关文章
- Web框架本质及第一个Django实例 Web框架
Web框架本质及第一个Django实例 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...
- Django实例
更新:今年8月在深圳和嵩天老师居然见面了,很开心.嵩天老师很和蔼. =========== 今天看了嵩天老师的视频,感觉讲的很好,于是看着视频自己做了一个初步的实例认识. 步骤1,新建一个Web框架 ...
- 【Django实例】博客1
(上一篇) 一.概述 Blog是一个博客应用. dbe工程的目录结构,参考<序言>的最后部分.blog应用位于/home/russellluo/Django/dbe/dbe/blog目录下 ...
- django实例收集
django笔记(一)(模板渲染变量.字典.for循环.索引.条件语句) django笔记(二) django环境准备与笔记(三) django笔记(四) django笔记(五) Views的补充 w ...
- Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- WEB框架本质和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...
- Django之Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Django学习笔记之Web框架由浅入深和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- DAY15-web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Web的本质以及第一个Django实例.
Web框架的本质: 所有的Web应用本质上就是一个socket服务器, 而用户的浏览器就是一个socket客户端. import socket sk = socket.socket() s ...
随机推荐
- kubernetes 集群中部署 nginx 服务
kubernetes 部署nginx服务 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问. Namespace Namespace是kubernetes系统中 ...
- TOGAF 内容元模型综合指南
介绍 开放群组架构框架 (TOGAF) 是一种广泛使用的企业架构框架,它提供了一种结构化的方法来设计.规划.实施和管理企业信息技术架构.TOGAF 内容元模型是该框架的重要组成部分,它提供了一种标准化 ...
- Go1.24版本终于来了!各位开发者,准备好迎接这些激动人心的新功能了吗?让我们一起来探讨下Go1.24中有哪些精彩的亮点?
前言 Gopher们,Go 1.24.0 正式发布了!与 Go 1.23.0 相比,这个版本带来了众多改进.让我们一同看看 Go 1.24.0 都有哪些新变化吧! 在 Windows 下,请在 htt ...
- Qt 实现带阴影 无边框的QMessageBox
Qt 实现带阴影的QMessagebox 在实际项目里面使用到了QMessageBox做一个弹窗,最开始是样式不是需要的样式,就去找了一下QMessageBox的样式表,一般来说可以使用findChi ...
- [tldr]windows使用scoop安装make工具辅助程序编译
make是一个好用的GNU工具,用来辅助我们进行自动化的程序编译,只需要一个Makefile文件,即可实现一行指令自动编译 scoop是windows的一个包管理工具 安装 scoop bucket ...
- 零经验选手,Compose 一天开发一款小游戏!
猛男翻卡牌 猛男启动 继上一个 Compose 练习项目 SimpleTodo 之后,又尝试用 Compose 来做了一个翻牌记忆游戏[猛男翻卡牌].这次是零经验写游戏项目,连原型都没有做设计,问了 ...
- ssh WARNING: UNPROTECTED PRIVATE KEY FILE!
前言 在 ssh -i 指定密钥文件 登录时,出现以下报错: Permissions 0644 for 'xxxx' are too open. It is required that your pr ...
- 面试题-Spring和Springboot框架
前言 spring框架部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的 ...
- Linux性能分析-平均负载
平均负载的理解 一般系统变慢时,我们会使用top或uptime命令来查看下系统的负载情况 [root@localhost shell]# uptime 13:51:08 up 5 days, 21:5 ...
- String常见面试题
第一题:打印的结果是true还是false呢? 在之前我们就说过这题,执行s1时,检查字符串常量池,发现没有"abc",于是创建"abc",执行s2时,接着检查 ...