1. 程式人生 > 其它 >2021/6/16 模板層+orm部分記憶

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(欄位名=欄位值,...)
'''