开发笔记-----Ajax 基础使用
一、GET 方式的用法:
1 <!--html -->
2 <div class="layui-form">
3 <div class="layui-form-item">
4 <div class="layui-inline">
5 <label class="layui-form-label">IDC:</label>
6 <div class="layui-input-inline">
7 <select id="idc_addr">
8 <option value="">选择地址</option>
9 <option value="FT">丰台</option>
10 <option value="SH">沙河</option>
11 </select>
12 </div>
13 </div>
14
15 <div class="layui-inline">
16 <label class="layui-form-label">数量</label>
17 <div class="layui-input-inline">
18 <input type="text" class="layui-input" id="num" placeholder="访问最低数量或排名">
19 </div>
20 </div>
21 <div class="layui-inline" style="">
22 <button type="submit" id="btn" onclick="mycheck()" class="layui-btn">提交</button>
23 </div>
24 </div>
25 </div>
26
27 //js 配置
28 <script src="/static/monitor/js/echarts.min.js"></script>
29 <script src="/static/monitor/js/sweetalert.min.js"></script>
30 <script type="text/javascript">
31 function mycheck(){
32 chart.showLoading();
33 getdata();
34 }
35 function getdata(){
36 var idc_addr=$('#idc_addr option:selected').val();
37 var num=document.getElementById("num").value;
38 if(idc_addr!="" && num!=""){
39 $.ajax({
40 type: "GET",
41 data:{"num":num ,"idc_addr":idc_addr,},
42 url: "http://192.168.3.83:/sankey/",
43 dataType: 'json',
44 success: function (result) {
45 chart.setOption(result.data);
46 chart.hideLoading();
47 }
48 });
49 }else{
50 swal("warning","请输入查询条件!!!!","warning");
51 chart.hideLoading();
52 }
53 }
54 </script>
55
56 #后台配置 django+python
57 def sankey_base(request): #展示方式:xq(详情),top(top_N)
58 num = request.GET.get('num',100) #获取和 赋默认值
59 idc_addr = request.GET.get('idc_addr','FT') #获取IDC名称
60 print(num,idc_addr)
61 return render(request,'monitor/home.html')
二、POST方式的用法:
<!-- html -->
<form style="display: inline" onsubmit="return false" action="##" method="post">
{% csrf_token %}
<div>
<label for="user_id">用户名:</label>
<input type="text" name="username" maxlength="35" onblur="checkInput()" oninput="changeBtnable()" autofocus required id="user_id" placeholder="请输入用户名前缀"> @testmail.com
</div><br/><br/>
<button type="submit" id="btn" disabled onclick="add_user()" class="btn btn-primary">
<i class="fa fa-plus" aria-hidden="true"></i> 添加用户
</button>
</form> //Javascript
<script type="text/javascript">
//添加用户
function add_user(){
var url = window.location.href;
var file_obj = new FormData;
file_obj.append('username',$("#user_id").val());
file_obj.append('csrfmiddlewaretoken',$('[name=csrfmiddlewaretoken]').val()); //获取token
$.ajax({
type:"POST",
dataType:"json",
url:"/add_user/",
processData: false,
contentType: false,
data:file_obj,
success:function(data){
swal({
title: "result",
text: data['message'],
icon:data['type'],
type:"success"}).then(function(){
location.reload(); //点击确定时,重新加载页面
}
);
}
});
}
</script> ####views.py
def add_user(request):
msg = ''
if request.is_ajax():
pwd = pwd_create()
username = str(request.POST['username'])
user_mail = username+mail_dc
create_user = "echo `/opt/zimbra/bin/zmprov ca %s '%s' ` "%(user_mail,pwd)
out,err = conn_server(create_user)
if len(out[0])==37 and '-'in out[0]:
msg = '用户创建成功!'+'\n'+'用户名: %s'%user_mail + '\n'+'密码:%s'%pwd
return JsonResponse({'status': 200,'type':'success' ,'message':msg})
else:
if 'ACCOUNT_EXISTS' in err[0]:
msg = '用户名: %s 已存在,请重新输入。'%user_mail
return JsonResponse({'status': 200,'type':'error', 'message':msg})
else:
return redirect('manager:home') ####urls.py
urlpatterns = [
path('',views.home,name='home'),
path('add_user/',views.add_user,name='add_user'),
]
开发笔记-----Ajax 基础使用的更多相关文章
- iOS开发笔记系列-基础1(数据类型与表达式)
学习iOS开发快两年了,去年完成MagViewer之后就因为公司的其他业务繁重,除了维护这个应用之外,只是断断续续地自己做一些实验开发,没有再发布新的应用,这里想整理一下学习过程中的笔记,以便加深印象 ...
- iOS开发笔记系列-基础2(类)
面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...
- IOS科研IOS开发笔记学习基础知识
这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...
- iOS开发笔记系列-基础6(预处理程序)
预处理程序提供了一些工具,使用这些工具更易于开发.阅读.修改程序,也易于将程序移植到不同的系统中.又称为宏. #define #define语句的基本用途之一就是给富豪名称指定程序常量.比如: #de ...
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类 ...
- iOS开发笔记系列-基础7(C语言特性)
Objective-C是C语言的扩展,因此,也具备很多C语言的基本特性,这里只罗列部分. 块(Blocks) 块是对C语言的一种扩展,它并未作为标准ANSI C所定义的部分,而是Apple添加到语言中 ...
- iOS开发笔记系列-基础5(分类和协议)
分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...
- iOS开发笔记系列-基础4(变量与数据类型)
对象的初始化 对象的初始化方法一般都如下: -(id)init { self=[super init]; if(self){ ... } return self; } 这个方法首先会调用父类的初始化方 ...
- 《ArcGIS Runtime SDK for Android开发笔记》
开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...
随机推荐
- 队列,一种"公平"的数据结构
路过一家奶茶店,由于生意火爆,门口的排着长长的队伍,先排队的人先买到奶茶,然后再轮到下一个,秩序井然.有没有一种数据结构能体现"先来后到"这种顺序呢? 当然有,那就是队列.先看一下 ...
- Java基础系列(14)- JavaDoc生成文档
JavaDoc JavaDoc是一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API,易读且清晰明了 参数信息 @author 作者名 @version 版本号 @since 指 ...
- 【CTF】msf和impacket联合拿域控内网渗透-拿域控
前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...
- 项目部署(ubuntu+uwsgi+nginx+supervisor+django)
一.在开发机上的准备工作 1. 确认项目没有bug. 2.设置`ALLOW_HOST`为你的域名,以及ip地址. 4.设置`DEBUG=False`,避免如果你的网站产生错误,而将错误信息暴漏给用户. ...
- WPF进阶技巧和实战03-控件(5-列表、树、网格01)
列表控件 ItemsControl为列表项控件定义了基本功能,下图是ItemsControl的继承关系: 在继承自ItemsControl类的层次结构中,还显示了项封装器(MenuItem.TreeV ...
- 01 ASP.NET Core 3 启动过程(一)
ASP.NET Core 3 启动过程(一) 最近又忙于各种扯淡,今天来一个需求,明天又来一个需求,后天需求又变了,这可能是很多人遇到的情况.正在紧张的忙碌着,突然一个信息把所有计划打乱了," ...
- Chrome浏览器启动参数大全(命令行参数)
前言 在开发Web项目当中,浏览器必不可少,而浏览器的启动参数可以帮我们实现很多功能. 常用参数 常用参数请参考下表. 序号 参数 说明 1 --allow-outdated-plugins 不停用过 ...
- Python 通过 .cube LUT 文件对图像加滤镜
Python 通过 .cube LUT 文件对图像加滤镜 一个好用的python给图片加滤镜的代码: https://github.com/CKboss/PyApplyLUT 这个是对C++代码的封装 ...
- 微信小程序Canvas添加水印字体,通过setGlobalAlpha设置字体透明度。
微信小程序自带的设置透明度只有setGlobalAlpha,但是CanvasContext.setGlobalAlpha设置透明度,是全局透明,整张图片都透明了.所以直接使用是不行的. 换种思路实现: ...
- Java泛型中的细节
Java泛型中的细节 如果没有泛型 学习Java,必不可少的一个过程就是需要掌握泛型.泛型起源于JDK1.5,为什么我们要使用泛型呢?泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一 ...