django备忘

命令:ctrl+alt+R
设置:ctrl+alt+S


获取硬件信息psutil模块
1.setting路径设置
STATICFILES_DIRS=((os.path.join(BASE_DIR, 'static')),)
2.正则路径:
(?p<nid>\d+)
3.url传参数
url(r^'',{'name':'alex'})
def index(req,name):
  pass
4.url路径别名
url(r^'index',name='cc')
{% url 'cc' %}

5.render用法
方法一:
render(req,'index.html',{})

方法二:
render(req,'index.html',locals())
6.redirect页面跳转 重定向
redirect('/blog/blog')
7.url分发
include('')
8.{{}}列表显示
list.2/list.x


9.模版
{% if %}
{%endif%}
{%for i in obj%}
  {{forloop.counter1/0}}计数从0或1开始
  {{forloop.revcounter}}反向打印
  {{i}}
{%endfor%}

filter:
{{obj|upper}}大写
{{obj|lower}}小写
{{obj|capfirst}}首字母大写
{{obj|addslashes}}变量前加斜线
{{s6|add:5}}


安全渲染字符串到页面
{% autoescape off%}
{{xx}}
{% endautoescape%}
或者
{{xx|safe}}

{%csrf_token%}跨站

{%verbatim %}禁止render数据显示
  {{hello}}
{%endverbatim%}
10.自定义过滤器 simple_tag:

创建templatetags模块
创建xx.py
from django import template
register = template.Library()#register的固定变量名,不能改变
@register.simple_tag
def func(v1):
  return v1+'world'

{%load xx%}
{%func name%} name是参数
11.html页面继承
{%extends ' xx.html '%}
{%block content%}
{{block.super}}

{%endblock%}

orm
创建表
class Public(models.Model):
添加数据:
方式1
Public.objects.create(字段1= ,字段= ,)
Public.objects.create(**{字段1:})
方式2
Public(字段1= ,字段= ,).save()


obj = Public()
obj.字段 =
obj.save()
查询/查
Public.objects.filter(id = 1).delete()

obj = Public.objects.get(id = 5).name='aa'
obj = .save()

Public.objects.filter(id = 2).update(name='dd')

Public.objects.filter(name='',id=)集合对象
Public.objects.all()

Public.objects.get(name='',id=)对象

Public.objects.filter(name='',id=).values('name')只取name字段的值是列表字典序列

Public.objects.filter(name='',id=).values_list('name')
Public.objects.filter(name='',id=).distinct()剔除重复的记录
Public.objects.filter(name='',id=).first()

Public.objects.filter(name='',id=).last()
Public.objects.filter(name='',id=).count()

Public.objects.filter(name='',id=).exists() 如果queryset包含数据 TRue,不包含 false


一对一

一对多
绑定到多的里面,
创建方法
1.
obj_id = 1

2.
obj = obj对象

多对多

关联
obj = Public.objects.filter(name='',id=)[0]
obj.author.add(auth1,auth2)
obj.author.add(*[auth1,auth2])
联合唯一
class Meta: unique_together = ('field1', 'field2',)

正反项查询

条件查询
id__gt=2 大于

id__lt=2 小于

id__in=[1,2,3,4]等于列表任意值

title__contains='p' title包含p的都符合
icontains 忽略大小写

id__range[1,2] 大于一 小于二

title__startwith='p' 以p开头

关联查询
obj__title='python'

聚合查询
from adjango.db.models import Avg,Min,Max,Sum
Book.objects.all().aggregate(Avg('price'))
结果:
{'price_avg':34.35}

分组聚合
按名字分组求和,
Book.objects.values('name').annotate(Sum('price'))
[{'name':'a','price_sum':Decimal(143.00)},
{'name':'b','price_sum':Decimal(143.00)}]
F,Q
from django.db.models import F,Q
Book.objects.all().update(price=F('price')+90)

Book.objects.filter(Q(id=3)|Q(id=7))

Suit-v2(demo)、Xadmin(浏览网站可能需要FQ)、grappellidjango-admin-bootstrapped

django-suit

连接数据库
app :__init__.py
import pymysql
pymysql.install_as_MySQLdb()
ajax

$.get('url',{传递数据},function(data,statusTest,obj){})
$.post('url',{传递数据},function(data,statusTest,obj){})
$.ajax({
  url:'/ /',
  type:'POST/GET',
  data:{},
  processData:false,
  contentTYpe:'text'
  traditional:true,
  dataType;'json',
  success:function(data){
}

})


F Q:

models.Book.objects.all().update(price=F(
price)+1)

models.Book.objects.all().filter(Q(price)|Q(title));










posted on 2017-08-02 21:03  名称已被其他用户使用  阅读(155)  评论(0编辑  收藏  举报

导航