命令: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))
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));