Django笔记--002基本应用结构

1.数据与模板  数据->模型model--------处理方法views-------->模板template

2.制造数据库迁移: makemigrations    迁移:migrate

3.创建模型(Article)后在admin.py中注册

admin site register(Article)

4.objects  模型的objects是获取或操作模型的对象(Article)

  QuerySet(查询结果集对象):从数据库中查询出来的结果一般为一个集合,叫QuerySet,也就是服务器上的url里面查询内容。

      Article.objects.get(条件)   返回Model对象,类型为列表。执行SQL语句获取数据。

     Article.objects.all()    返回QuerySet对象,支持迭代,可用for循环获取数据,并没有在数据库中执行SQL查询。

     Article.objects.filter(条件)  

5.网页为myblog/1..3,档输入超过3时返回Http404。

1 def article_detail(request,article_id):
2     try:
3         article=Article.objects.get(id=article_id)    #从models  get (id=article_id)数据
4     except Article.DoesNotExist:
5         raise Http404('没有网页了')    
6     return HttpResponse('<h3>文章标题: %s </h3> <br>文章内容:%s' % (article.title,article.content))
#修改1次后:
1 def article_detail(request,article_id):
2     try:
3         article=Article.objects.get(id=article_id)    #从models  get (id=article_id)数据
4 context={} #建立一个字典 用于接受get到的数据
5 context['article_obj']=article # 将get数据赋值给字典键‘article_obj’
6 # return render(request,'article_detail.html',context) #返回模板及数据 响应给浏览器
7 return render_to_response('article_detail.html',context) #返回模板及数据 响应给浏览器
8 except Article.DoesNotExist: 5 return Http404('没有网页了')
#修改2次后:
1 def article_list(request):
2      articles=Article。object.all()                       #从models  获取全部数据,如果没有自动转到.
3 context={} #建立一个字典 用于接受get到的数据
4 context['articles']=articles # 将数据赋值给字典键‘article_obj’
5
return render_to_response('article_list.html',context) #返回模板及数据 响应给浏览器

 *处理流程  浏览器发送url信息-->urls.py分配给views.py处理-->views.py得到request请求,从models.py get到数据,进行处理。然后return HttpResponse(‘网页模板’,内容)-->浏览器。

      在每个app中建立urls.py文件写入path,在总urls文件中引入include模块,写入到APP的总路径。

如:from django.urls import path,include    -->path('myblog/',include('myblog.urls')),

6.使用模版   前端页面和后端代码分离 减低耦合性。

      使用{{ }}将views.py处理结果引入template模板。如:<h3>{{article_obj.title}}</h3>      <p> {{article_obj.content}} </p>

      使用{%     %}  迭代views.py处理结果呈现到template模板。

如:{% for article in articles %}

               <a href="/myblog/{{article.pk}}"> {{article.title}} </a><br>  
               <a href="{% url  'article_detail' article.pk %}"> {{article.title}} </a><br> 使用urls中的path名称。
{% endfor %}

 

posted on 2018-11-04 22:42  南飞雁ht  阅读(50)  评论(0编辑  收藏  举报