2021/6/16 模板层+orm部分记忆

'''
模板层:
{{ 变量名 }}
{% 逻辑 %}
后端传值
from django.shortcuts import render
return render(request, '.html', {'': }/locals(), content_type='text/html', status=200, using=None)
前端获取
app01/templatetags/xxx.py
{% load xxx %}
{% load static %}
{{ 变量名 }}
变量名可以是数字、字母、下划线的任意组合
变量名不可以存在空格 .
. 在模板语法的调用顺序:
字典
属性、方法
数字索引
filters过滤器
|default:''
length
filesizeformat

date:'Y-m-d H:i:s'
date|timeuntil:date
date|timesince:date

slice:'start:end:step'
truncatechars:int
truncatewords:int

safe
cut:''
join:''
自定义过滤器
app01/templatetags/xxx.py
from django import template
register = template.Library()
@register.filter(name='')
def xxx(value, args):
return
Tag标签
{% for in %}
{% empty %}
{% endfor %}
forloop.
counter
counter0
revcounter
revcounter0
first
last
parentloop

{% if 逻辑、比较、成员、身份 %}
{% elif %}
{% else %}
{% endif %}

{% with a=xxx %}
{% endwith %}

{% csrf_token %}

{# #}
自定义tag
app01/templatetags/xxx.py
from django import template
register = template.Library()
@register.simple_tag(name='')
def xxx(a,b,c):
return
模板
{% extends '.html' %}

{% block zzw %}
{% endblock %}

{% block zzw %}
{% endblock %}
组件
{% include '.html' %}
自定义组件
app01/templatetags/xxx.py
from django import template
register = template.Library()
@register.inclusion_tag('.html')
def xxx(a,b,c):
return locals()/{'': }

.html
{{ }}

index.html
{% load xxx %}
{% xxx 1 2 3 %}

连接数据库
django
databases = {
'default': {
'engine':'django.db.backends.mysql'
'name': '数据库名'
'user':''
'password':''
'host':''
'port':''
'charset':''
}
}
代码声明,在__init__.py
import pymysql
pymysql.install_as_MySQLdb()

ORM简介
所有返回queryset对象都支持链式操作
models.py文件
from django.db import models
class xxx(models.Model):
变量名 = models.字段名(参数)
python manage.py makemigrations
python manage.py migrate
ORM常用字段和参数
字段
IntegerField()
AutoField(primary_key=True)
CharField(max_length=32)
DateField()
DateTimeField()
auto_now=True
auto_now_add=True
DecimalField()
max_digit=
decimal_places=
EmailField()
TextField()
FileField()
BooleanField()
参数
null=True
default=''
max_length=
primary_key=True
blank=True
auto_now
auto_now_add
choices
( ())
get_choices_display()
verbose_name=''
unique=True
db_index=True
关系字段
OneToOneField()
ManyToManyField()
ForeignKey()
to=''
to_field=''
to_delete=models.
set(值/func)
set_default
set_null
cascade

do_nothing
protect
db_constraint=True
自定义字段
from django.db import models
class xxx(models.Model):
def __init__(self, max_length, *args, **kwargs):
self.max_length=max_length
super().__init__(max_length=max_length, *args, **kwargs)
def db_type(self):
return 'chr(%s)'%self.max_length
字段操作
增加
models.字段名()
python manage.py makemigrations
python manage.py migrate
修改
删除
查看


查询记录
values(pk,...)
values_list(pk,...)
filter(pk=2,)
all()
exclude(pk=2,...)
order_by(-'pk')
reverse()
distinct()
get(pk=2,...)
first()
last()
exists()
count()
匹配规则
字段名__lt = 字段值
字段名__lt
字段名__lte
字段名__gt
字段名__gte
字段名__in = []
字段名__range = [start, end]
字段名__contains = ''
字段名__icontains = ''
字段名__startswith = ''
字段名__istartswith = ''
字段名__endswith = ''
字段名__iendswith = ''
字段名__month = ''
字段名__year = ''
字段名__day = ''
字段名__week_day = ''

增加记录
models.表明.objects.create(字段名=字段值,...)
'''
上一篇:JWT(json web token)


下一篇:Java常用ORM框架