感谢alex~
.Django请求生命周期
输入url 进入 urls(路由系统) 指向 views(视图函数)-》(获取模板) 里面的函数 再由函数返回字符串给用户 .路由系统
/index/ -> 函数或类.as_view()
/detail/(?P<nid>\d+) 函数(参数)或者类.as_view()(参数)
/detail/ name="a1" ->include('app01.urls')
->视图中:reverse
->模板中:{% url "a1" %} .视图函数
FBV:函数
def index(request,*args,**kwargs):
..
CBV:类
class Home(views.View):
def get(self,request,*args, **kwargs) 获取用户请求中的数据:
request.POST.get() #获取name =
request.GET.get()
request.FILES.get() #checkbox, select mutiple
request.POST.getlist()
request.GET.getlist()
request.FILES.getlist() request.path_info 获取当前请求的url 文件对象 = request.FILES.get()
文件对象.name 文件名
文件对象.size 文件大小字节
文件对象.chunks() 文件切片 需要for循环 f.write() #<form 特殊的设置></from> 获取用户请求分会数据:
render(request, "index.html" ,{'obj':,'k1':[,,,],'k2':{'name':"ljc"}}) #HTML模板的路径 不是url redirect(url) return redirect('/cmdb/user_info/') HttpResponse(字符串) .模板语言 <html>
<body>
<h1>{{ obj }}<h1> 单值
<h1> {{ k1. }}<h1>
<h1> {{k2.name}}<h1> {% for row in k1 %} #循环列表
<p>{{row}}<p>
{%endfor%} {%for x,y in k2.items %} keys,values,items
{{ x }} {{ y }}
{%endfor%} <body>
<html> .ORM
a.创建类和字段 执行命令生成数据库
class User(models.Model):
nid = models.IntergerField() 数字 不需要加长度
name = models.CharField(max_length=) 字符长度 只接收64个字符 python manage.py makemigrations
python manage.py migrate
# settings.py 注册APP需要添加 b.操作数据库 增删改查都是可以增字典 **dic

models.User.object.create(nid=,name="ljc") dic = {'name':'xx','nid':}
models.User.objects.create(**dic) obj = modeles.User.(nid=,name="ljc")
obj.save() 删
models.User.objects.filter(id=).delete()

models.User.objects.filter(id=).update(nid=,name="ljc")
dic = {'name':'xx','nid':}
models.User.objects.filter(id__gt=).update(**dic) 查
models.User.objects.filter(id=,name="root")查
models.User.objects.filter(id__gt=)
models.User.objects.filter(id__lt=)
models.User.objects.filter(id__lte=)
dic = {'name':'xx','nid__gt':} #nid大于19
models.User.objects.filter(**dic) 外键:
class UserType(models.Model):
caption = models.CharField(max_length=)
id caption
#.普通用户
#.VIP用户
#.游客 class User(models.Model):
age = models.IntergerFiled()
name = models.CharField(max_length = )
user_type = models.ForeignKey("UserType",to_field='id') #约束 但是生成数据时为user_type_id
name age user_type_id
ljc
zpt
cc v1 = models.Business.objects.all()
#QuerySet 对象 all() first()
#[obj(id, caption, code),obj2(id,caption,code) ]
{% for row in v1 %}
<li>{{row.id}}-{{row.caption}}-{{row.code}}</li>
{% endfor%} v2 = models.Business.objects.values('id','caption')
#QuerySet 字典
#[{'id':,'caption':"运维部"},{},{}] values变为字典了'
{% for row in v2 %}
<li>{{row.id}}-{{row.caption}}</li>
{% endfor%} v3 = models.Business.objects.values_list('id', 'caption')
#QuerySet 元组
#[(,运维部),(,开发)]
{% for row in v3 %}
<li>{{row.}}-{{row.}}</li>
{% endfor%} models.Business.objects.get(id=) 获取到一个对象 但一般不用
**models.Business.objects.filter(id=).first() 如果获取对象! 如果存在为true 如果不存在返回null 外键
v = models.Host.objects.filter(nid__gt=)
v[].b.caption ---> 通过点.来实现跨表查询 __双下划线跨表 filter后面想跨表时都用双下划线 b__caption b__code
v2 = models.Host.objects.filter(nid__gt=).values('nid','hostname','b_id','b__caption')
print(v2) 自循环 forloop.counter 从1开始
forloop.counter0 从0开始
forloop.revcounter 倒序排列
forloop.revcounter0 倒序0开始
forlopp.last {% for row in v1 %}
<a>{{forloop.counter}}<a>
{%endfor%} position:fixed absosulte relative .shade{
position:fixed;
top:;
rigth:;
left:;
bottom:;
background:black;
opacity:0.6;
z-index:;
}
.add-modal{
position:fixed;
height:300px;
width:400px;
top:100px;
left:%;
z-index:;
border:1px solied red;
background:white;
margin-left:-200px
}
.hide{
display:none;
} <select>
<option>
<option>
<select> redirect('/host')默认是以get
render(request,'host.html')以post Ajax提交
$.ajax({
url:'/host',
type:"POST 或者 GET",
data:{'k1':, "k2":"root"},
success: function(data){ #这个函数等着服务端发送回复请求
//data是服务器端返回的字符串
var obj = JSON.parse(data) }
}
})
内部都调用$.ajax 推荐还是$.ajax(
{}
)
$.get(url="",data={},)
$.getJson
$.post javascrip将字符串转为字典
data = '{1,2,3,4}'
var obj = JSON.parse(data); 将列表、字典转为字符串
li = [,,,]
JSON.stringify(li) 建议:永远让服务器端返回一个字典
return HttpResponse(json.dumps(字典))
python 字典/列表转为字符串
json.dumps(字典) python 字符串转为字典/列表
json.loads(字符串)

django 笔记6 Ajax的更多相关文章

  1. django 笔记15 ajax系列

    参考 http://www.cnblogs.com/wupeiqi/articles/5703697.html # 原生操作# jQuery操作# 伪Ajax操作# XMLHttpReques 伪aj ...

  2. 【笔记】AJAX+SweetAlert插件实现删除操作

    [笔记]AJAX+SweetAlert插件实现删除操作 Django AJAX SweetAlert  展示 SweetAlert 插件介绍 SweetAlert 是一个 JS 插件,能够完美替代 J ...

  3. 【笔记】AJAX基础

    [笔记]AJAX基础 Django AJAX  知识储备:JSON 什么是 JSON JSON 是轻量级的文本数据交换格式 JSON 独立于语言和平台.JSON 解析器和 JSON 库支持许多不同的编 ...

  4. Django中的Ajax

    Ajax 很多时候,我们在网页上请求操作时,不需要刷新页面.实现这种功能的技术就要Ajax!(本人定义,不可迷信) jQuery中的ajax就可以实现不刷新页面就能向后台请求或提交数据的功能,我们仍然 ...

  5. Web框架——Django笔记

    Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序   ...

  6. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

  7. django中的ajax组件

    目录 django中的ajax 向服务器发送请求的途径 Ajax的特点 基于jquery实现的ajax请求 利用ajax实现计算器 利用ajax实现登陆认证 利用form表单进行文件上传 利用ajax ...

  8. 学习笔记:AJAX 跨域问题

    学习笔记:AJAX 跨域问题 AJAX 跨域是浏览器的问题. 只要 xhr 请求,不同的域名就会出现 AJAX 跨域问题. JSONP 是一要简单方式,但是有很多弊端,需要修改服务端代码. JSONP ...

  9. Django框架 之 Ajax

    Django框架 之 Ajax 浏览目录 AJAX准备知识 AJAX与XML的比较 AJAX简介 jQuery实现的ajax AJAX参数 AJAX请求如何设置csrf_token 序列化 一.AJA ...

随机推荐

  1. jdk动态代理(转)

    一旦这样绑定后,那么在进入代理对象方法调用的时候就会到HelloServiceProxy的invoke方法上,invoke方法有三个参数:第一个proxy是代理对象,第二个是当前调用那个方法,第三个是 ...

  2. mysql导入数据,涉及到时间转换,乱码问题解决

    表结构: drop table if exists `qi_an_log`;CREATE TABLE `qian_log` (`dt` LONG NOT NULL COMMENT '产生日期,格式yy ...

  3. 如何在SQLServer中处理每天四亿三千万记录的

    项目背景 这是给某数据中心做的一个项目,项目难度之大令人发指,这个项目真正的让我感觉到了,商场如战场,而我只是其中的一个小兵,太多的战术,太多的高层之间的较量,太多的内幕了.具体这个项目的情况,我有空 ...

  4. [转] CentOS 7 为firewalld添加开放端口及相关资料

    转自http://www.cnblogs.com/hubing/p/6058932.html 1.运行.停止.禁用firewalld 启动:# systemctl start  firewalld 查 ...

  5. [转载]vim常用命令总结

    内容出处https://www.jianshu.com/p/a8ab13cff1ea 如有侵权请告知 移动.跳转 h.j.k.l:分别对应左.下.上.右.按键盘分布,从左到右,逆时针. w:移动到下一 ...

  6. canvas 连线曲线图

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name=& ...

  7. [USACO10FEB]吃巧克力Chocolate Eating

    题目:洛谷P2985. 题目大意:有n块巧克力要吃d天,并且只能按顺序吃.一块巧克力有一个开心值,吃了就能增加开心值.一个人初始开心值为0,且每天早上开心值变为原来的一半.问如何吃巧克力才能使开心值最 ...

  8. BZOJ 5394 [Ynoi2016]炸脖龙 (线段树+拓展欧拉定理)

    题目大意:给你一个序列,需要支持区间修改,以及查询一段区间$a_{i}^{a_{i+1}^{a_{i+2}...}}mod\;p$的值,每次询问的$p$的值不同 对于区间修改,由线段树完成,没什么好说 ...

  9. puppet介绍与安装

    puppet是什么puppet是一种基于ruby语言开发的Lnux.Unix.windows平台的集中配置管理系统.它使用自有的puppet描述语言,可管理配置文件file.用户user.cron任务 ...

  10. YUM安装MONGODB发生Error in PREIN scriptlet in rpm package mongodb-enterprise-server-4.0.2-1.el6.x86_64错误

    YUM安装MONGODB发生Error in PREIN scriptlet in rpm package mongodb-enterprise-server-4.0.2-1.el6.x86_64错误 ...