python djangjo完整的实现添加的实例
实现:点击添加实现模态对话框,添加数据并显示。
urls.py
- from django.conf.urls import url
- from django.contrib import admin
- from app01 import views
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- url(r'^host$', views.host),
models.py
- from django.db import models
- # Create your models here.
- # class Foo(models.Model):
- # name = models.CharField(max_length=1)
- class Business(models.Model):
- # id
- caption = models.CharField(max_length=32)
- code = models.CharField(max_length=32,null=True,default="SA")
- # fk = models.ForeignKey('Foo')
- class Host(models.Model):
- nid = models.AutoField(primary_key=True)
- hostname = models.CharField(max_length=32,db_index=True)
- ip = models.GenericIPAddressField(protocol="ipv4",db_index=True)
- port = models.IntegerField()
- b = models.ForeignKey(to="Business", to_field='id')
views.py
- def host(request):
- if request.method == "GET":
- v1 = models.Host.objects.filter(nid__gt=0)
- v2 = models.Host.objects.filter(nid__gt=0).values('nid','hostname','b_id','b__caption')
- v3 = models.Host.objects.filter(nid__gt=0).values_list('nid','hostname','b_id','b__caption')
- b_list = models.Business.objects.all()
- return render(request, 'host.html', {'v1': v1,'v2': v2,'v3': v3,'b_list':b_list})
- elif request.method == "POST":
- h = request.POST.get('hostname')
- i = request.POST.get('ip')
- p = request.POST.get('port')
- b = request.POST.get('b_id')
- # models.Host.objects.create(hostname=h,
- # ip=i,
- # port=p,
- # b=models.Business.objects.get(id=b)
- # )
- models.Host.objects.create(hostname=h,
- ip=i,
- port=p,
- b_id=b
- )
- return redirect('/host')
html文件(需要修改,带有其他代码):
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title></title>
- <style>
- .hide{
- display: none;
- }
- .shade{
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- bottom: 0;
- background: black;
- opacity: 0.6;
- z-index: 100;
- }
- .add-modal,.edit-modal{
- position: fixed;
- height: 300px;
- width: 400px;
- top:100px;
- left: 50%;
- z-index: 101;
- border: 1px solid red;
- background: white;
- margin-left: -200px;
- }
- </style>
- </head>
- <body>
- <h1>主机列表(对象)</h1>
- <div>
- <input id="add_host" type="button" value="添加" />
- </div>
- <table border="1">
- <thead>
- <tr>
- <th>序号</th>
- <th>主机名</th>
- <th>IP</th>
- <th>端口</th>
- <th>业务线名称</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody>
- {% for row in v1 %}
- <tr hid="{{ row.nid }}" bid="{{ row.b_id }}">
- <td>{{ forloop.counter }}</td>
- <td>{{ row.hostname }}</td>
- <td>{{ row.ip }}</td>
- <td>{{ row.port }}</td>
- <td>{{ row.b.caption }}</td>
- <td>
- <a class="edit">编辑</a>|<a class="delete">删除</a>
- </td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- <h1>主机列表(字典)</h1>
- <table border="1">
- <thead>
- <tr>
- <th>主机名</th>
- <th>业务线名称</th>
- </tr>
- </thead>
- <tbody>
- {% for row in v2 %}
- <tr hid="{{ row.nid }}" bid="{{ row.b_id }}">
- <td>{{ row.hostname }}</td>
- <td>{{ row.b__caption }}</td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- <h1>主机列表(元组)</h1>
- <table border="1">
- <thead>
- <tr>
- <th>主机名</th>
- <th>业务线名称</th>
- </tr>
- </thead>
- <tbody>
- {% for row in v3 %}
- <tr hid="{{ row.0 }}" bid="{{ row.2 }}">
- <td>{{ row.1 }}</td>
- <td>{{ row.3 }}</td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- <div class="shade hide"></div>
- <div class="add-modal hide">
- <form id="add_form" method="POST" action="/host">
- <div class="group">
- <input id="host" type="text" placeholder="主机名" name="hostname" />
- </div>
- <div class="group">
- <input id="ip" type="text" placeholder="IP" name="ip" />
- </div>
- <div class="group">
- <input id="port" type="text" placeholder="端口" name="port" />
- </div>
- <div class="group">
- <select id="sel" name="b_id">
- {% for op in b_list %}
- <option value="{{ op.id }}">{{ op.caption }}</option>
- {% endfor %}
- </select>
- </div>
- <input type="submit" value="提交" />
- <a id="ajax_submit" >悄悄提交</a>
- <input id="cancel" type="button" value="取消" />
- <span id="erro_msg" style="color: red"></span>
- </form>
- </div>
- <div class="edit-modal hide">
- <form id="edit_form" method="POST" action="/host">
- <input type="text" name="nid" style="display:none" />
- <input type="text" placeholder="主机名" name="hostname" />
- <input type="text" placeholder="IP" name="ip" />
- <input type="text" placeholder="端口" name="port" />
- <select name="b_id">
- {% for op in b_list %}
- <option value="{{ op.id }}">{{ op.caption }}</option>
- {% endfor %}
- </select>
- <a id="ajax_submit_edit" >确认编辑</a>
- </form>
- </div>
- <script src="/static/jquery-1.12.4.js"></script>
- <script>
- $(function(){
- $('#add_host').click(function(){
- $('.shade,.add-modal').removeClass('hide');
- });
- $('#cancel').click(function(){
- $('.shade,.add-modal').addClass('hide');
- });
- $('#ajax_submit').click(function(){
- $.ajax({
- url: "/test_ajax",
- type: 'POST',
- //data: {'hostname': $('#host').val(), 'ip': $('#ip').val(), 'port': $('#port').val(), 'b_id': $('#sel').val()},
- data: $('#add_form').serialize(),
- success: function(data){
- var obj = JSON.parse(data);
- if(obj.status){
- location.reload();
- }else{
- $('#erro_msg').text(obj.error);
- }
- }
- })
- });
- $('.edit').click(function(){
- $('.shade,.edit-modal').removeClass('hide');
- var bid = $(this).parent().parent().attr('bid');
- var nid = $(this).parent().parent().attr('hid');
- $('#edit_form').find('select').val(bid);
- $('#edit_form').find('input[name="nid"]').val(nid);
- // 修改
- /*
- $.ajax({
- data: $('#edit_form').serialize()
- });
- */
- // models.Host.objects.filter(nid=nid).update()
- })
- })
- </script>
- </body>
- </html>
python djangjo完整的实现添加的实例的更多相关文章
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(四) --高级设置二
原文:一个完整的Installshield安装程序实例-艾泽拉斯之海洋女神出品(四) --高级设置二 上一篇:一个完整的安装程序实例—艾泽拉斯之海洋女神出品(三) --高级设置一4. 根据用户选择的组 ...
- 一个完整的Installshield安装程序实例-转
一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...
- Python导出Excel为Lua/Json/Xml实例教程(三):终极需求
相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出E ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- asp.net中生成缩略图并添加版权实例代码
这篇文章介绍了asp.net中生成缩略图并添加版权实例代码,有需要的朋友可以参考一下 复制代码代码如下: //定义image类的对象 Drawing.Image image,newimage; //图 ...
- python基础——类名称空间与对象(实例)名称空间
python基础--类名称空间与对象(实例)名称空间 1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类 ...
- Python NLP完整项目实战教程(1)
一.前言 打算写一个系列的关于自然语言处理技术的文章<Python NLP完整项目实战>,本文算是系列文章的起始篇,为了能够有效集合实际应用场景,避免为了学习而学习,考虑结合一个具体的项目 ...
随机推荐
- PAT Advanced 1097 Deduplication on a Linked List (25) [链表]
题目 Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplica ...
- LUA函数闭包
词法定界:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量,这种特征叫做词法定界 table.sort(names,functin (n1,n2) return grades[n1] ...
- CocoaPods-Alcatraz插件
Alcatraz:Xcode的插件管理工具,可通过它添加CocoaPods插件 下载地址:https://github.com/alcatraz/Alcatraz 建议: 不提倡通过终端命令下载Alc ...
- 基于redis实现锁控制
多数据源 数据源1为锁控制,数据源2自定义,可用于存储. 锁:当出现并发的时候为了保证数据的一致性,不会出现并发问题,假设,用户1修改一条信息,用户2也同时修改,会按照顺序覆盖自修改的值,为了避免这种
- springCloud eureka服务治理集群增加安全认证
做为SpringCloud Netflix服务套件中的一部分,springCloud eureka基于Netflix Eureka做了二次封装,默认提供WEB管理页面及服务治理. 为了确保在生产环境中 ...
- Django专题-AJAX
AJAX准备知识:JSON 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JS ...
- linux 笔记本
命令 作用 tail -f 日志文件名 将日志同步输出 echo "">文件名 清空文件内容
- bzoj3218 a+b Problem(最小割+主席树优化建边)
由于6.22博主要学测,大半时间学文化课,近期刷题量&写题解的数量会急剧下降. 这题出得挺经典的,首先一眼最小割,考虑朴素的做法:与S联通表示白色,与T联通表示黑色,S向i连流量为w[i]的边 ...
- 13.docker 网络 docker NameSpace (networkNamespace)
一. 案例 1.创建一个 container docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600 ...
- Oracle之纵向数据转换横向数据
资源二 来源 http://www.cnblogs.com/gkl0818/archive/2009/02/25/1398078.html 1.固定列数的行列转换如student subject ...