关联
1:1 OneToOneField : 主键和外键是一堆的关系, 在关联表中, 只能关联一个主表的id
拓展表找主表: 拓展信息对象, 关联字段
主表找拓展表的信息: 主表对象. 关联表的model1:N
M:Non_delete
默认cascade, 主表删除, 从表也删除
set_null, 主表删除, 从表关联字段设为空
protect, 不让删除
set_default, 主表删除, 从表关联字段设置为默认值静态资源加载
1) static/images/xxx.png
2) {% load static %}
for
{% for i in stu %}
{% empty %}
{% endfor %}if
{% if xxx %}
{% endif %}ifequal
{% ifequal xxx 1 %}
{% else %}
{% endifequal %}forloop
forloop.counter
计数从0开始:{{ forloop.counter0 }}
计数从1开始:{{ forloop.counter }}
计数从最后开始,到1停:{{ forloop.revcounter }}
计数从最后开始,到0停:{{ forloop.revcounter0 }}过滤器
在变量显示前修改
语文成绩: {{ stu:s_yuwen | add:10 }}
add 加法,增加值生日: {{ stu.stu_birth | date:’y-m-d’ }}
date: 日期显示方式数学成绩: {% if stu.stu_shuxue | divisibleby:2 %}
name: {{stu.stu_name}}
—>加上h3标签
{% else %}
name: {{stu.stu_name}} —>正常显示
{% endif %}
divisibleby:2 : 能整除2,返回True, 否则False权限设计(习题)
用户表user
u_name, u_sex, u_birth, u_operate_time, u_create_time角色表role
r_name, 管理员,会员,超级VIP角色role和权限permission
r_id
p_id权限表 permission
p_name
具体权限名有,登录权限,查询用户列表信息权限,修改用户信息权限1) 查询某某用户具备那些权限
2)判断某一个用户是否有某一个权限html页面挖坑,填坑操作
建立base.html:
建立index1.html:
建立index2.html
{% extends ‘base.html’ %}
{% block title %}
我也能继承
{% endblock %}{% block contain %}
我最帅–>我能继承好多
{% endblock %}- 里面用的全是jinja2语言
设计Get请, 通过标签传递参数
– {% for g in grades %}
班级id : {{ g.id }}
–
班级名称: {{ g.g_name }}
–
– {% endfor %}def addStu(request):
if request.method == ‘GET’:
return render(request, ‘addStu.html’)
if request.method == ‘POST’:
# 跳转到添加学生详情页面
name = request.POST.get(‘name’)
tel = request.POST.get(‘tel’)
stu = Student.objects.create(
s_name = name,
s_tel = tel
)
# 以下为传参数
return HttpResponseRedirect(reverse( r’s:addinfo’, kwargs={‘stu_id’: stu.id}))
def addStuInfo(request, stu_id):
if request.method == ‘GET’:
return render(request, ‘addStuInfo.html’, {‘stu_id’: stu_id})
if request.method == ‘POST’:
stu_id = request.POST.get(‘stu_id’)
addr = request.POST.get(‘addr’)
StudentInfo.objects.create(
s_id = stu_id,
i_addr = addr
)
return HttpResponseRedirect(‘/stu/index/’)以上代码以后在 url.py里面设置:
urlpatterns = [
url(r’^allstu/(?P\d+)/’, views.allStu)
]
可以通过这个设置,将g_id这个变量的值取到方法request的后面
如:
def allStu(request, g_id):
balababala –> 你就可以在这边进行调用g_id了指定参数传递
– 外键(ForeignKey)和models.OneToOneField:
u = models.OneToOneField(Users)
以上为: 一对一
s = models.ForeignKey(Users, unique=True)
外键其实是一对多, 添加unique以后, 就是一对一了
– 处理404错误和500错误
- 如果要处理这类错误, 需要在setting.py 里面将 DEBUG = False, 下面的访问权限里面加入 [‘*’]
- 具体操作流程如下: