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)的更多相关文章

  1. Web框架本质及第一个Django实例 Web框架

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

  2. Django实例

    更新:今年8月在深圳和嵩天老师居然见面了,很开心.嵩天老师很和蔼. =========== 今天看了嵩天老师的视频,感觉讲的很好,于是看着视频自己做了一个初步的实例认识. 步骤1,新建一个Web框架 ...

  3. 【Django实例】博客1

    (上一篇) 一.概述 Blog是一个博客应用. dbe工程的目录结构,参考<序言>的最后部分.blog应用位于/home/russellluo/Django/dbe/dbe/blog目录下 ...

  4. django实例收集

    django笔记(一)(模板渲染变量.字典.for循环.索引.条件语句) django笔记(二) django环境准备与笔记(三) django笔记(四) django笔记(五) Views的补充 w ...

  5. Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  6. WEB框架本质和第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...

  7. Django之Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  8. Django学习笔记之Web框架由浅入深和第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  9. DAY15-web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  10. Web的本质以及第一个Django实例.

       Web框架的本质:    所有的Web应用本质上就是一个socket服务器, 而用户的浏览器就是一个socket客户端. import socket sk = socket.socket() s ...

随机推荐

  1. Markdown语法基础教学

    Markdown语法基础教学 简介 Markdown是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML.它的目标是实现"易读易写",并且 ...

  2. NFS服务器离线问题解决

    NFS服务器离线问题解决 NFS服务器挂了会导致挂载的NFS客户端主机卡顿延迟,或者提示找不到文件 因为在执行一些命令的时候会自动去同步,用作同步的NFS服务端挂了,命令执行就会卡住 不过听说NFS还 ...

  3. Github Copilot的使用方法和快捷键

    GitHub Copilot是一款由GitHub和OpenAI共同开发的代码智能补全工具,它使用机器学习模型来为你提供代码建议和自动完成,可以加快开发过程并提高代码质量.下面是使用GitHub Cop ...

  4. 绝对荧光定量pcr结果计算

    绘制标准曲线 首先根据公式,计算出标准品曲线的x值(拷贝数),需要修改的数值是标准品质粒浓度(图上的321)和4565(基因片段长度),得出的结果单位是拷贝数/μl. 根据计算结果,可以列出表格,样品 ...

  5. DW005 - ArgoDB基础

    第1章 Argo基础 1.1 ArgoDB对象 说明 在ArgoDB中,可以使用常见的数据库对象,包括数据库(Database),表(Table),视图(View)和函数(Function) 可以使用 ...

  6. MD5 - windows也可以查询某个文件的MD5码

    命令格式 certutil -hashfile 文件名称 md5 示例 Microsoft Windows [版本 10.0.22621.1702] (c) Microsoft Corporation ...

  7. Abaqus-Steady-State-Dynamic-Analysis的求解原理

    0. 总括 基于模态的谐响应分析,可以通过扫频的方式求解频率范围内结构的线性稳态响应情况.阻尼是和频率相关的,但模态叠加法只需要知道n个模态阻尼即可推广到其他频率范围(原因详见文内公式). 1. 谐响 ...

  8. 【Python&Hypermesh】ABAQUS导入网格,并在Part内保留SET

    在Hypermesh定义好set,划分好网格以后,可以导出为INP.然后在ABAQUS导入inp,就可以得到网格.但是这样倒进来的网格一般有两个问题: 网格全在一个部件里,原来定义好的Set会出现在装 ...

  9. 【Python】批量提取Fibersim xml文件中的节点网格数据

    程序功能: 输入需求: fibersim导出的ply 的xml文件,可以很多个也没问题.但名字要有规律,不然没法循环读写.比如我自己用的就是x1.xml.x2.xml.Y1.xml......的文件名 ...

  10. 探秘Transformer系列之(14)--- 残差网络和归一化

    探秘Transformer系列之(14)--- 残差网络和归一化 目录 探秘Transformer系列之(14)--- 残差网络和归一化 0x00 概述 0x01 残差连接 1.1 问题 1.2 相关 ...