pythonのdjango初体验

简单的一个列表展示,实现了增、删、插

1.通过新建项目来创建一个Django项目

2.通过pycharm中的Terminal来创建app   ,命令如下:

python manage.py startapp devicesys

最后项目结构如下:

项目结构:

3.修改相关配置:

  在于项目同名的文件夹下打开setting.py 做两个事情(1)注释MIDDLEWARE中的   # ‘django.middleware.csrf.CsrfViewMiddleware‘,  (2) 在文件结尾处增加STATICFILES_DIRS = [( os.path.join(BASE_DIR,"static"))]

  打开urls.py将devicesys导入进来

4.在devicesys文件夹下的models.py中编写如下代码

 1 from django.db import models
 2 import sqlalchemy
 3 from sqlalchemy import create_engine
 4 from sqlalchemy.ext.declarative import declarative_base
 5 from sqlalchemy import Column,Integer,DATE,ForeignKey,String
 6 from  sqlalchemy.orm import sessionmaker,relationship
 7 # Create your models here.
 8
 9 # 创建数据库连接
10 engine = create_engine("mysql+pymysql://root:[email protected]/testuser?charset=utf8",echo=True)
11
12 # 生成orm基类
13 Base = declarative_base()
14
15 # 创建表映射
16 class Devices(Base):
17     __tablename__ = "devices" # 表名称
18     id = Column(Integer,primary_key=True)
19     name = Column(String(64)) # 设备名称
20     ip = Column(String(32)) # 设备地址
21     username = Column(String(32)) # 设备账号
22     password = Column(String(32)) # 设备密码
23     brand = Column(String(32))  # 设备品牌
24     addtime = Column(DATE) # 设备添加时间
25
26 # 构建表结构
27 Base.metadata.create_all(engine)
28
29 # 创建数据库会话类
30 session_class = sessionmaker(bind=engine)
31 # 创建数据库会话实例
32 session = session_class()
33
34 def getlist():
35     return session.query(Devices).filter_by().all()
36
37 def add(name,ip,username,password,brand):
38     temp = Devices(name=name,ip=ip,username=username,password=password,brand=brand)
39     session.add_all([temp])
40     session.commit()
41 def delete(del_id):
42     del_info = session.query(Devices).filter(Devices.id==del_id).first()
43     if del_info is not None:
44         session.delete(del_info)
45         session.commit()

在views.py中编写如下代码:

 1 from django.shortcuts import render
 2
 3 # Create your views here.
 4 from django.shortcuts import HttpResponse
 5 from django.shortcuts import render
 6 from django.shortcuts import redirect
 7 from devicesys import models
 8 import time
 9 def loadlist(request):
10     list = models.getlist()
11     print(list)
12     return render(request,"index.html",{"list":list})
13
14 def add(request):
15     if request.method == "POST":
16         # 获取提交信息
17         name = request.POST.get("name")
18         ip = request.POST.get("ip")
19         username = request.POST.get("username")
20         password = request.POST.get("password")
21         brand = request.POST.get("brand")
22         # 获取当前时间并进行格式化
23         # addtime = time.strftime("%Y-%m-%d", time.time())
24         models.add(name,ip,username,password,brand)
25         list = models.getlist()
26         return render(request, "index.html", {"list": list})
27
28 def delete(request):
29     if request.method == "POST":
30         # 获取参数
31         del_id = request.POST.get("del_id")
32         if del_id:
33             models.delete(del_id)
34             list = models.getlist()
35             return render(request, "index.html", {"list": list})
36         else:
37             return HttpResponse("<h1>404</h1>")

5.在项目下创建static文件夹并且将layer相关文件导入进去,并且导入jquery.js

6.在templates文件夹下新建index.html

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>服务器管理</title>
  6     <link rel="stylesheet" href="/static/layui/css/layui.css">
  7     <script src="/static/jquery.min.js"></script>
  8     <script src="/static/layui/layui.js"></script>
  9     <script src="/static/layui/lay/modules/element.js"></script>
 10     <script src="/static/layui/lay/modules/layer.js"></script>
 11     <script>
 12         //注意:导航 依赖 element 模块,否则无法进行功能性操作
 13         layui.use(‘element‘, function(){
 14             var element = layui.element;
 15         });
 16     </script>
 17 </head>
 18 <body>
 19     <ul class="layui-nav" lay-filter="">
 20         <li class="layui-nav-item"><a href="">最新活动</a></li>
 21         <li class="layui-nav-item layui-this"><a href="">产品</a></li>
 22         <li class="layui-nav-item"><a href="">大数据</a></li>
 23         <li class="layui-nav-item">
 24             <a href="javascript:;">解决方案</a>
 25             <dl class="layui-nav-child"> <!-- 二级菜单 -->
 26                 <dd><a href="">移动模块</a></dd>
 27                 <dd><a href="">后台模版</a></dd>
 28                 <dd><a href="">电商平台</a></dd>
 29             </dl>
 30         </li>
 31         <li class="layui-nav-item"><a href="">社区</a></li>
 32     </ul>
 33     <div class="layui-form-item"  style="float:left;padding-top: 10px;">
 34        <div class="layui-input-block" style="float:left;margin-left: 10px;">
 35            <input type="text" name="title" required  lay-verify="required" placeholder="关键字搜索" autocomplete="off" class="layui-input">
 36        </div>
 37         <button class="layui-btn layui-btn-normal" style="padding-left:5px; ">
 38              <i class="layui-icon"></i>
 39         </button>
 40     </div>
 41     <div class="layui-btn-group" style="float:right;padding-top: 10px;padding-bottom: 10px;padding-right: 10px;">
 42       <button onclick="add_win()" class="layui-btn layui-btn-normal">
 43         <i class="layui-icon"></i>
 44       </button>
 45     </div>
 46     <div>
 47         <table class="layui-table">
 48         <colgroup>
 49            <col width="150">
 50            <col width="200">
 51            <col>
 52         </colgroup>
 53         <thead>
 54             <tr>
 55                 <td>序号</td>
 56                 <td>名称</td>
 57                 <td>IP地址</td>
 58                 <td>账号</td>
 59                 <td>品牌</td>
 60                 <td>操作</td>
 61             </tr>
 62         </thead>
 63         <tbody>
 64             {% for row in list %}
 65               <tr>
 66                     <td>{{ row.id }}</td>
 67                     <td>{{ row.name }}</td>
 68                     <td>{{ row.ip }}</td>
 69                     <td>{{ row.name }}</td>
 70                     <td>{{ row.brand }}</td>
 71                     <td>
 72                         <a class="del" href="#" row-id="{{ row.id }}">删除 |</a>
 73                         <a href="#" row-id="{{ row.id }}">详情</a>
 74                     </td>
 75              </tr>
 76             {% endfor %}
 77         </tbody>
 78     </table>
 79     </div>
 80     <div style="display:none;margin-top: 10px;" id="add_win">
 81         <form class="layui-form" action="/add/" method="post">
 82             <div class="layui-form-item">
 83                 <label class="layui-form-label">设备名称</label>
 84                 <div class="layui-input-block">
 85                   <input type="text" name="name" style="width: 260px;" required  lay-verify="required" placeholder="请输入设备名称" autocomplete="off" class="layui-input">
 86                 </div>
 87                 <label class="layui-form-label">IP地址</label>
 88                 <div class="layui-input-block">
 89                   <input type="text" name="ip" style="width: 260px;" required  lay-verify="required" placeholder="请输入IP地址" autocomplete="off" class="layui-input">
 90                 </div>
 91                 <label class="layui-form-label">账号</label>
 92                 <div class="layui-input-block">
 93                   <input type="text" name="username" style="width: 260px;" required  lay-verify="required" placeholder="请输入设备账号" autocomplete="off" class="layui-input">
 94                 </div>
 95                 <label class="layui-form-label">密码</label>
 96                 <div class="layui-input-block">
 97                   <input type="text" name="password" style="width: 260px;" required  lay-verify="required" placeholder="请输入设备密码" autocomplete="off" class="layui-input">
 98                 </div>
 99                 <label class="layui-form-label">品牌</label>
100                 <div class="layui-input-block">
101                   <input type="text" name="brand" style="width: 260px;" required  lay-verify="required" placeholder="请输入设备品牌" autocomplete="off" class="layui-input">
102                 </div>
103             </div>
104             <div class="layui-form-item">
105                 <div class="layui-input-block">
106                   <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
107                   <button type="reset" class="layui-btn layui-btn-primary">重置</button>
108                 </div>
109             </div>
110         </form>
111     </div>
112     <div style="display:none;margin-top: 10px;" id="del_win">
113         <form class="layui-form" action="/del/" method="post">
114             <div class="layui-form-item">
115                 <span style="margin-left:30px;">您确定要删除该条数据?</span>
116                 <input type="hidden" id="del_id" name="del_id"/>
117             </div>
118              <div class="layui-form-item">
119                 <div class="layui-input-block" style="margin-left: 45px;margin-top: 20px;">
120                     <button class="layui-btn" lay-submit lay-filter="formDemo">确定</button>
121                     <button type="button" id="cancel" class="layui-btn layui-btn-primary">取消</button>
122                 </div>
123             </div>
124         </form>
125     </div>
126     <script>
127         $(function(){
128             $(".del").click(function(){
129                 var row_id = $(this).attr(‘row-id‘);
130                 $("#del_id").val(row_id);
131                 layer.open({
132                     type:1,
133                     area: [‘220px‘, ‘150px‘],
134                     shadeClose: true,
135                     title:"删除",
136                     end :function(index, layero){
137                         $("#del_id").val("")
138                         $("#del_win").css(‘display‘,‘none‘)
139                     },
140                     content:$("#del_win").css(‘display‘,‘block‘)
141                 })
142             });
143             $("#cancel").click(function () {
144                 layer.close(layer.index);
145             });
146         })
147         function add_win(){
148             layer.open({
149                 type:1,
150                 area: [‘500px‘, ‘400px‘],
151                 shadeClose: true,
152                 title:"新增",
153                 end :function(index, layero){
154                     $("#add_win").css(‘display‘,‘none‘)
155                 },
156                 content:$("#add_win").css(‘display‘,‘block‘)
157             })
158         }
159     </script>
160 </body>
161 </html>

运行结果如下:

注:目前仅实现了新增和删除,搜索和详情未实现。

原文地址:https://www.cnblogs.com/pengpengzhang/p/9714255.html

时间: 2024-08-05 03:08:04

pythonのdjango初体验的相关文章

1Python全栈之路系列之Django初体验

Python全栈之路系列之Django初体验 Django不得不说在Python中是一个非常强大的全栈框架,而且入门也比较简单,只要你学完了基本的Django知识,接着再做一两个项目,不大不小就成,然后你再去学其它的框架你会发现,在那些小而美的框架中,你学起来将非常的快,因为你在学习Django的时候就已经学习并且体验过了Web开发流程,所以会有这么一个现象出现,有些新手朋友在学习Flask.Tornado等小而美的框架时,很多概念不是很理解,比如ORM.路由等,但你学Django就不会出现这种

django初体验 学习笔记

django环境搭建 1.安装Python 2.ipython sudo apt-get install ipython sudo pip install ipython 3.安装pip sudo apt-get install python-pip 4.安装django pip安装: sudo pip install django 源码安装: 1. git clone https://github.com/django/django.git 2.sudo python setup.py ins

Django初体验——搭建简易blog

前几天在网上看到了篇采用Django搭建简易博客的视频,好奇心驱使也就点进去学了下,毕竟自己对于Django是无比敬畏的,并不是很了解,来次初体验. 本文的操作环境:ubuntu.python2.7.Django1.8.6.Pycharm5.其实自从使用了ubuntu之后就很神奇的喜欢上了它,真的用起来方便很多. 1.Django项目文件并创建blog应用 (1)可以在终端中建立Django项目,使用django-admin startproject ...直接上图: 建立blog应用: (2)

python第十七天-----Django初体验

Django是一个MTV框架 M:models(数据库) T:templates(放置html模版) V:views(处理用户请求) 那么传说中的MVC框架又是什么呢? M:models(数据库) V:views(放置html模版) C:controllers(处理用户请求) 所有如果以后有人问你MVC或者MTV是什么的时候 1.创建Django项目 django-admin startproject mysite_django(你的项目名),生成一个目录内包含如下内容 其中mysite_dja

Ubuntu下Django初体验(二)——创建工程及应用

一.工程目录详解 创建工程后得到如下目录: 1. manage.py 管理项目.创建数据库.启动服务器等.测试等. 查看子命令: python manage.py 启动服务器: python manage.py runserver 指定启动服务器的地址和端口: python manage.py runserver 0.0.0.0 8080 2. mysite 目录 2.1 settings.py  对于整个网站的配置.配置文件:应用.中间件.数据库.静态目录各类配置... 2.2 urls.py

Ubuntu下Django初体验(一)——开妇环境搭建

一.开发 环境搭建 1. linux下一般有自带的python,如果对版本不满意,可以再自行安装. 2. 安装ipython(推荐) sudo apt-get install ipython sudo pip install ipython 3. 安装pip sudo apt-get install python-pip 4. 安装django pip安装:sudo pip install Django 源码安装: git clone https://github.com/django/djan

django初体验草稿

学习django的基础的东西:python基础(虽然自己看了一遍,不过还有好多东西都是一知半解的,所以还要重复看,去加强自己的基础). 数据库SQL(自己也是对一些基础语句运用的不熟练,然后接下来的主要任务是学习数据库的备份管理,以及多去了解一些SQL语句. HTTP协议(不怎么了解,要多去补补.) HTML&CSS(有所了解,能看懂一点,但是不会用) 正则表达式(python基础里面的,没怎么重视,还得好好补补.) 因为我在linux终端上用不了django,所以就直接在windows上装上了

Django初体验

Django Django安装 pip3 install django==1.11.9 # 使用==可以指定安装版本 创建一个Django项目 django-admin startproject mysite # 使用django-admin 命令安装 Django项目目录介绍 mysite/ ├── manage.py # 管理文件 └── mysite # 项目目录 ├── __init__.py ├── settings.py # 配置 ├── urls.py # 路由 --> URL和函

python 之初体验

python 关开python的介绍我这里就不解释了,这里贴出一个官方的介绍,供大家阅读 http://baike.baidu.com/link?url=U6LdVR-5RCI2TNsXzeALCcG9TjnUA5B-v4gZiXsbAhcOHKJvqmIOwnHWdbLA8BeXrIGn_pIL8LM40zJhVfCfAa 费话少说首先是安装python 下载python,由于我的电脑是win10 64位的,所以我下载一个64位的python 官方下载网址:https://www.python