day17 Django学习三
参考博客:
http://www.cnblogs.com/wupeiqi/articles/5237704.html
http://www.cnblogs.com/wupeiqi/articles/5246483.html
s16day17
上节内容回顾:
路由系统:
. /index/ -> def index(request)
.
/detail-(\d+)/ -> def detail(request,nid)
/detail-(?P<nid>\d+)/ -> def detail(request,nid)
.
/index/ -> def index(request) name=n1
使用别名生成URL:
模板语言: {% url n1 %} -> /index/
视图函数:
reverse(name="n1") -> /index/
.
/web/ include("app01.urls")
视图函数:
. 函数至少一个参数
. request
request.method
request.GET
request.POST (请求头:Content-Type:application/x-www-form-urlencoded; charset=UTF-)
request.body
request.FILES
...
.
return HttpResponse(..)
return render()
return redirect()
模板引擎:
. 基本语法
return renderI(request, 'xxx.html', {'v': [,,,],'d':{'k1':'v1','k2':'v2'} })
xxx.html
{{v.}}
{% for i in d %}
{{i}} --> key
{% endfor %}
{% for k,v in d.items %}
{{k}}--{{v}}
{% endfor %}
. 函数
Django提供函数
simple_tag
filter
ORM操作:
. 创建表
class UserInfo(models.Model):
# nid = models.AutoField(primary_key=True) int
# nid = models.BigAutoField(primary_key=True) long
name = models.CharField(max_length=)
pwd = models.CharField(max_length=)
. 操作表
q = models.UserInfo.objects.all()
Queryset = [obj(id,name,pwd),obj(id,name,pwd),obj(id,name,pwd),]
q = models.UserInfo.objects.values('name','pwd')
Queryset = [{"name":'alex','pwd':},{"name":'alex1','pwd':123sfd},{"name":'alex1','pwd':123sfd},]
q = models.UserInfo.objects.values_list('name','pwd')
Queryset = [('alex',),('alex',),('alex',),('alex',),]
q = models.UserInfo.objects.filter(name='alex')
[obj,]
q = models.UserInfo.objects.get(name='alex')
q = models.UserInfo.objects.filter(name='alex').first()
...
今日内容:
. FBV和CBV
FBV:
url(r'^index/', views.index),
def index(request):
print('.....')
if request.method == 'GET':
pass
elif request.method == 'POST':
pass
return HttpResponse('....')
CBV:
url(r'^user/', views.User.as_view()),
class User(View):
def dispatch(self, request, *args, **kwargs):
print('before')
obj = super(User,self).dispatch(request, *args, **kwargs)
print('after')
return obj
def get(self,request):
print("get...")
return HttpResponse('...')
def post(self,request):
print("post...")
return HttpResponse('...')
. ORM操作
a. 创建表
一对多
多对多
- 创建第三表:
- 自己定义第三张表 :列无限制
- ManyToManyField字段: 列限制(三)
- 无法直接,只能通过ManyToManyField字段进行间接操作
b. 操作
正向
dp
反向
userinfo
userinfo_set
. Cookie
在浏览器上保存的简直对
应用:
可做用户登录
做投票
. session
服务器端保存的简直对
{
asdfasdfasdf: {'user':'asdf','pws':'asdf'}
}
. Ajax操作
#
$.ajax({
url: '/aj/', # 提交地址
type: "POST", # 提交方式
data: {uuu: u, ppp:p}, # 提交数据
dataType: "JSON",
success:function (data) { # 回调函数,登录成功后自动执行
# 将字典形式的字符串,发序列化成为字典对象(json对象)
# var data_dict = JSON.parse(data);
if(data_dict.status){
location.href = "/home/"
}else{
alert(data_dict.error);
}
}
})
课堂笔记
作业: 主机管理
. 主机表(FK),业务线表
. 用户表(M2M), 用户主机关系表
. 功能:
a. Ajax登录
b.
主机表(主机信息+业务线信息)
c. ***
当前用户管理的所有主机表(主机信息+业务线信息)
d. 业务线管理(增、修改、删除)
- 对话框
- 新URL
作业
day17 Django学习三的更多相关文章
- django学习(三)
1.单表操作和测试环境的准备 我们先对单表查询做一个总结和回顾,并进行进一步的学习和交流.我们在我们的应用的models.py文件下面书写user类.如下所示,然后用数据库迁移,在mysql数据库中生 ...
- Django学习(三) Django模型创建以及操作
在Django中可以建立自己的模型Model,这里对应Java里的实体类,跟数据库表是对应的.其中用到了django.db模块中的models.如下图所示: mysite/news/models.py ...
- python+django学习三
在这个网站看https://sshwsfc.github.io/xadmin/ xadmin结果一堆的坑,文档找不到界面,dome登陆就报错permission denied for rela ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- Django基础学习三_路由系统
今天主要来学习一下Django的路由系统,视频中只学了一些皮毛,但是也做下总结,主要分为静态路由.动态路由.二级路由 一.先来看下静态路由 1.需要在project中的urls文件中做配置,然后将匹配 ...
- Django 学习笔记(三)模板导入
本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...
- django 学习之DRF (三)
Django学习之DRF-03 视图集 1.视图集介绍 2.视图集基本使⽤ 1.需求 使⽤视图集获取列表数据和单⼀数据 2.实现 class BookInfoV ...
- Django 学习笔记之四 QuerySet常用方法
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
- Python框架之Django学习
当前标签: Django Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0 Python框架之Django学习笔记(十三) 尛 ...
随机推荐
- 初探Nginx服务器的整体架构
高度模块化的设计是 Nginx 的架构基础.Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则. 核心模块 核心模块是 Nginx ...
- SSH的加入顺序*(转)
首先创建一个 New => Web Project 起名 demo 然后在项目名称上 点击鼠标右键 选择 MyEclipse => Add Speing Capabilites... ...
- TOSCA自动化测试工具--建立测试用例
1.测试链接 demowebshop.tricentis.com 测试login 2.检查元素 3.Modules模块,建立自己的文件夹,右键Scan Application , Desktop 4. ...
- $python日期和时间的处理
总结一下python中对日期和时间的常用处理方法. 准备 import time,datetime 常用操作 输出当前的日期时间 方式一: now = time.localtime() print ' ...
- Twitter的分布式自增ID算法snowflake
snowflake 分布式场景下获取自增id git:https://github.com/twitter/snowflake 解读: http://www.cnblogs.com/relucent/ ...
- 前端虚拟接口mockjs的使用
最近在学习VueJS,也进一步学习了ES6,看了一遍之后,难免手痒,所以想仿写点什么,但是数据是个问题,你总不能写个分页,写个轮播吧,但是在公司做自己的东西找后台要接口也不那么像回事,怎么办呢? 无意 ...
- iOS 所有设备一览 && CoreFoundation源码
1. 所有设备一览 https://en.wikipedia.org/wiki/List_of_iOS_devices 2. CoreFoundation源码(可以看看runloop.runtime的 ...
- java并发编程与高并发解决方案
下面是我对java并发编程与高并发解决方案的学习总结: 1.并发编程的基础 2.线程安全—可见性和有序性 3.线程安全—原子性 4.安全发布对象—单例模式 5.不可变对象 6.线程封闭 7.线程不安全 ...
- MLlib1.6指南笔记
MLlib1.6指南笔记 http://spark.apache.org/docs/latest/mllib-guide.html spark.mllib RDD之上的原始API spark.ml M ...
- 20145103JAVA第二次实验报告
实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...