上一节说到程序会出错,但我没演示,现在补上。请在浏览器上输入http://127.0.0.1:8000/base/
update/100/ ,回车试试看,哎呀,沙雕了。错误不少呀。
![07f9431346510139b4c63dca989e27a6.png](https://i-blog.csdnimg.cn/blog_migrate/64927c7bf866dae897b17ff8dd287f5f.jpeg)
没事,遇到问题,不要慌也不要急,解决就是了。咱们进行错误捕捉处理,对update函数进行升级改造。再次运行,会有友好信息提醒,over。
# 修改数据def update(request, post_id): try: post = Post.objects.get(id=post_id) post.name = '项目经理' post.save() except Post.DoesNotExist: return HttpResponse('访问的岗位不存在,请确认!') else: return HttpResponseRedirect('/base/')
对数据库的增删改查功能是实现了,只是视图(html)的代码写死在逻辑控制(views.py)里了。没有达到分工,轻耦合的目的,而这个可以通过模板文件进行实现。
10.1 模板文件
在base/templates/base下新建一个index.html模板文件,选择html5,这是目前常用的版本,解决了很多html4存在的问题,完整代码如下。
岗位信息列表 {% for post in posts %} 岗位:{{ post.name }} 删除| 修改
{% endfor %}
为了传值给html了,需要对views.py中的index函数进行改造,霹雳吧啦,几下就输完了。
rom django.template import loader# 访问数据def index(request): posts = Post.objects.all() t = loader.get_template('base/index.html') return HttpResponse(t.render({'posts': posts}))
运行项目,打开浏览器进行访问http://127.0.0.1:8000/base/ ,效果虽然跟之前是一样的,但意义不同,进步不一般,积小成大。