昨日回顾 1 orm 创建表,新增字段,修改,删除字段,不能创建数据库 -字段属性phone=models.CharField(max_length=64,null=True) -null=True 代表该列可以为空 2 数据的增删改查 -增(1):User.objects.create(address=‘‘) -增(2):实例化产生一个user对象,user对象的save方法 -删:User.objects.filter(id=1,name=‘lqz‘).first().delete() -删:User.objects.filter(id=1,name=‘lqz‘).delete() -改:User.objects.filter(id=1,name=‘lqz‘).update() -查:User.objects.all() user=User.objects.filter(name=‘lqz‘) user.name 3 前后台交互 -id=1&name=‘lqz‘& <form action="/updateuser/?id={{ user.id }}" method="post"> <p><input type="hidden" name="id" value="{{ user.id }}"></p> <p>用户名: <input type="text" name="name" value="{{ user.name }}"></p> <p>密码: <input type="text" name="password" value="{{ user.password }}"></p> <p>地址: <input type="text" name="addr" value="{{ user.address }}"></p> <input type="submit" value="提交"> </form> 4 django生命周期 5 一对多,多对多 -publish_id -publish=models.ForeignKey(to=‘Publish‘, to_field=‘id‘) book.publish_id book.publish 多对多:(自动创建第三张表) authors = models.ManyToManyField(to=‘Author‘) 今日内容:(路由层) 1 简单配置 -第一个参数是正则表达式(如果要精准匹配:‘^publish/$‘) -第二个参数是视图函数(不要加括号) -url(r‘^admin/‘, admin.site.urls), 2 无名分组 -按位置传参 -分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以,视图函数需要定义形参 -url(r‘^publish/([0-9]{4})/([0-9]{2})$‘, views.publish), -def publish(request,*args): 视图函数可以这样接收 3 有名分组 -按关键字传参 -有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以,视图函数需要定义形参,形参名字要跟分组的名字对应,与顺序无关 -url(r‘^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$‘, views.publish), -def publish(request, mounth,year): *****有名分组和无名分组,不要混用 4 反向解析 -先命一个名: -1 无参数:url(r‘^publishadd133/$‘, views.publishadd,name=‘ddd‘), -2 无名分组:url(r‘^publishadd/([0-9]{4})/([0-9]{2})/$‘, views.publishadd,name=‘ddd‘), -3 有名分组:url(r‘^publishadd/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$‘, views.publishadd,name=‘ddd‘), -在模板层: -1 无参数:{% url ‘ddd‘ %} -2 无名分组的:{% url ‘ddd‘ 2018 12 %} -3 有名分组:{% url ‘ddd‘ 2018 12 %} 还可以 {% url ‘ddd‘ year=2018 mounth=12 %} -在视图层: from django.shortcuts import reverse 在视图函数里: 1 无参数:url=reverse(‘ddd‘) 1 无名分组:url=reverse(‘ddd‘,args=(2018,12,)) 1 有名分组:url=reverse(‘ddd‘,args=(2018,12,)) 还可以 url=reverse(‘ddd‘,kwargs={‘year‘:2018,‘mounth‘:12}) 5 路由分发 1 在不同的app里创建urls.py 2 在总路由 -from django.conf.urls import include -url(r‘^blog/‘,include(‘blog.urls‘)), -url(r‘^app01/‘,include(‘app01.urls‘)), 3 在不同的app的urls里配置路由关系 ***重点***总路由,不能加结束符$ 6 名称空间 -url(r‘^blog/‘,include(‘blog.urls‘,namespace=‘blog‘)), -子路由:url(r‘^publish/$‘, views.publish,name=‘test‘), -反向解析: -视图层:url = reverse(‘blog:test‘) -模板层:{% url ‘app01:test‘%} ***一般不要用*** 子路由:url(r‘^publish/$‘, views.publish,name=‘app01_test‘), 7 伪静态 -路由:url(r‘^book/(?P<id>\d+.html)‘,views.book), -访问:http://127.0.0.1:8000/book/4.html 作业: 1 自己尝试对象有没有删除方法,更新方法 2 有时间的同学研究一下如何手动创建第三张表 3 图书管理系统,路由不用get形式传参,用有名分组,无名分组 4 http://127.0.0.1:8000/ 访问这个路径,匹配到图书列表 5 路由匹配不上,调到404的页面 6 图书管理系统,继续写
Django请求生命周期
原文地址:https://www.cnblogs.com/Maikes/p/9923836.html
时间: 2025-01-12 03:52:17