django知识点回顾(上)
Django---知识点:
1、 配置文件:
media:
avatar = models.FileField(upload_to='avatar')#数据库里的model
MEDIA_ROOT=os.path.join(BASE_DIR,"blog","media","uploads")#settings里设置
文件上传:BASE_DIR/"blog"/"media"/"uploads"/avatar/a.png#文件上传路径
客户端:
# media 配置
MEDIA_URL="/media/"
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
<img src="/media/avatar/a.png">
2、url配置:(有名分组是键值对形式传参数,无名分组)
url(r'^articles/([0-9]{4})/$', views.year_archive), # year_archive(request,1990)
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), # year_archive(request,year=1990)
3、反向解析:
in urls:
url(r'^articles/([0-9]{4})/$', views.year_archive, name='news-year-archive'),
url(r'^index/$', views.index, name='Index'),
in template(模板反向解析):
<a href="articles/2012/">2012 Archive</a>
<a href="{% url 'news-year-archive' 2012 %}">2012 Archive</a>#带参数的反向解析
in views(视图函数反向解析):
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
#return redirect("/index/") # hard code
return HttpResponseRedirect(reverse('Index'))#通过名字可以反向解析和上面的名字相对
4、视图函数:(表单是键值对形式)
请求对象---request:
1、HttpRequest.body: 请求元数据
2、HttpRequest.path:一个字符串,表示请求的路径组件(不含域名)
3、HttpRequest.method
5、HttpRequest.GET
6、HttpRequest.POST
7、HttpRequest.FILES 这是文件
8、HttpRequest.user : 一个 AUTH_USER_MODEL 类型的对象 这个是用在用django的原生auth表才可以使用
响应对象:
return HttpResponse("") # 返回字符串实例
return render(request,"template",{"":""}) # 返回字符串实例 (**********)render函数渲染成字符串返回前端
return redirect("/index/") # 重定向 (**********)
5、模板语言:
views:
def foo():
name="yuan"
l=[111,222,333]
d={"info":[obj1,obj2]}
returnr render(request,"index.html",locals())
1、变量:{{name}}
---深度查询 句点符 {{l.0}} {{d.info.0.name}}
----过滤器:{{name|date:"Y-m-d"}}
2、标签 (for .....empty)和if ....elif
{%for i in l%}
{{i}}
{%empty%}
<p>没有符合条件的书籍</p>
{%endfor%}
--------
{%if name == "yuan"%}
<p>真帅</p>
{%elif ...%}
{%endif%}
3、继承模板:
(1) base.html : {%block con%}{%end block con%}
(2) index.html:
{% extends "base.html"%} 继承 模板
{%block con%}
{{block.super}} 模板盒子中内容
{%end block con%} 覆盖
6、models(模型) -----ORM
sql中表名--------------python的类名
sql中表的字段----------python的类属性
sql中表的记录----------python的类对象
class Article(models.Model):
nid = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=50, verbose_name='文章标题')
read_count = models.IntegerField(default=0)
单表操作:
添加操作
views:
#方法1:
article_obj=models.Article.objects.create(nid=1,title="yuan",read_count=12) # create方法返回的是当前创建的文章对象
#方法2:
article_obj=models.Article(nid=1,title="yuan",read_count=12)#这是创建一个对象
article_obj.save()
删除:
models.Article.objects.filter(title="python").delete() # 默认级联删除
修改:
models.Article.objects.filter(title="python").update(read_count=F("read_count")+10)
查询API:
<1> all(): 查询所有结果 #QuerySet
<2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 #QuerySet
<3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,
如果符合筛选条件的对象超过一个或者没有都会抛出错误。 # model对象
<5> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 #QuerySet
<4> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
model的实例化对象,而是一个可迭代的字典序列 #QuerySet
<9> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 #QuerySet
<6> order_by(*field): 对查询结果排序 #QuerySet
<7> reverse(): 对查询结果反向排序 #QuerySet
<8> distinct(): 从返回结果中剔除重复纪录 #QuerySet
<10> count(): 返回数据库中匹配查询(QuerySet)的对象数量。 # int
<11> first(): 返回第一条记录 # model对象
<12> last(): 返回最后一条记录 # model对象
<13> exists(): 如果QuerySet包含数据,就返回True,否则返回False
querySet支持链式操作:
models.Article.objects.all().filter().values().distinct().count()
{% url' '%}(可以有参数) , {% extends "base.html"
{% load my_tags %} django知识点回顾(上)的更多相关文章
- django知识点回顾与补充
一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...
- CRM项目讲解和django知识点回顾
今天想把之前写的CRM项目梳理下,顺便回顾一下djiango的部分重要知识. 1.登录页面(包含简单验证码) 首先来看下CRM的登录页面,样式啥的不重要,大家可以去jquery ui的网站上或者其他地 ...
- django知识点回顾
1.web应用 本质是基于socket实现的应用程序 浏览器-----------服务器 2.http协议:应用层协议 1.基于TCP协议 2.基于请求响应 3.短连接 4.无状态保存(引入了cook ...
- $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete
一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...
- 面试前的准备---C#知识点回顾----03
经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...
- python Django知识点总结
python Django知识点总结 一.Django创建项目: CMD 终端:Django_admin startproject sitename(文件名) 其他常用命令: 其他常用命令: 通过类创 ...
- Java进阶(二十六)公司项目开发知识点回顾
公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...
- 零基础Python知识点回顾(一)
如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符 输入检查是否已经安装pip,一般安装了python都会有的. >pip ...
- Django的Model上都有些什么
Django的Model上都有些什么 modelinfo= ['DoesNotExist', 'MultipleObjectsReturned', '__class__', '__delattr__' ...
随机推荐
- Python机器学习笔记:不得不了解的机器学习面试知识点(1)
机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因 ...
- python装饰器带括号和不带括号的语法和用法
装饰器的写法补充: 通常装饰器的写法是@func(),而有的时候为了减少出错率,可能会写成@func,没有()括号,这时我们可以这样定义,来减少括号.下面通过两个例子还看. 一般装饰器的写法: def ...
- js判断字符串是否在数组中
先加一个扩展函数: Array.prototype.contains = function (obj) { var index = this.length; while (index–) { ...
- 移动端地区选择控件mobile-select-area
由于之前的[js开源组件开发]js手机联动选择地区仿ios 开源git 很受欢迎,于是我又对其进行了一些优化,包括可选的范围变大了,添加了默认空首地址的功能,也添加了更多api参数,首先我们先来看下这 ...
- Oracle em 此网站的安全证书存在问题
https://www.cnblogs.com/hyz5525/p/4390252.html C:\>emctl status dbconsole Oracle Enterprise Manag ...
- iOS SDK开发汇总
以前也做过静态库的开发,不过都是一些简单的调用,最近在做项目的时候,发现其中还有很多问题,所以建个小项目简单记录遇到的问题以及正确的解决办法. 在项目中遇到的问题如下:xib文件获取不到, story ...
- Java--实现单点登录
1 什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用 ...
- ORM&MySQL
概念: ORM:对象关系映射 , 全拼 Object-Relation Mapping ,是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术.主要实现模型对象到关系型数据库数据的映射.比如:把 ...
- 关于scanf与cin哪个快的问题
一开始入c++的时候成天跑cin,cout 直到有一天用cin,cout超时 才知道scanf比cin快的多 但是后来又听说加了ios::sync_with_stdio(false);的cin跟飞一样 ...
- React中props和state相同点和不同点
朋友们,我想死你们了,最近这几天忙着和病魔作斗争所以没怎么写博客,今天感觉好点了,赶紧来写一波,就是这木敬业. 今天我们来讨论讨论props和state相同点和不同点 首先我来概要说明一下这两者 pr ...