<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[success] # 頁面展示整理 ~~~ 1.根據model,構建我們搭建的,一下幾個頁面的展示: 博客首頁 博文詳情頁 分類列表頁 標簽列表頁 友鏈展示頁 2.根據上面劃分,講view 頁劃分如下 列表view——根據不同的查詢條件分別展示:首頁,分類列表頁,標簽列表頁 文章頁view —— 展示文章頁 友鏈頁view —— 展示所有友情鏈接 ~~~ >[danger] ##### urls.py 創建 `在全局url創建` ~~~ from django.conf.urls import url from django.contrib import admin from blog.views import post_list, post_detail from config.views import links from .custom_site import custom_site urlpatterns = [ url(r"^$", post_list), url(r'^category/(?P<category_id>\d+)/$', post_list, name="category"), url(r'^tag/(?P<tag_id>\d+)/$', post_list), url(r'^post/(?P<post_id>\d+)/$', post_detail,name="detail"), url(r'^links/$', links), url(r'^admin/', admin.site.urls), url(r'^cus_admin/', custom_site.urls), ] ~~~ >[danger] ##### view.py `blog目錄下的views.py` ~~~ from django.shortcuts import render def post_list(request, category_id=None, tag_id=None): return render(request, 'blog/list.html', context={'name': 'post_list'}) def post_detail(request, post_id=None): return render(request, 'blog/detail.html', context={'name': 'post_detail'}) ~~~ >[danger] ##### templates ~~~ list.html文件如下: <h1>list</h1> {{ name }} detail.html文件如下: <h1>detail</h1> {{ name }} ~~~ >[danger] ##### templates 報錯處理 ~~~ TemplateDoesNotExist at / blog/list.html ~~~ * 根據提示分析 ![](https://box.kancloud.cn/c25d88d17a522b2637efcb765a941b1b_1057x187.png) * 處理問題所在位置 ![](https://box.kancloud.cn/e79dd21f5130c5541ded70c30eb4801c_699x250.png) * 另一種處理 ~~~ 這個時候你就要看看它有沒有去查找你放模板文件的目錄,如果沒有,那說明你 的模板不在它的查找范圍,你需要去配置APP_INSTALL,如果它列出了你防止模 板的app,但是提示未找到,那你應該檢查下模板名稱是不是有寫錯。 ~~~ >[success] # FBV 數據應用 >[danger]##### blog/views.py * 調用的包 ~~~ from django.shortcuts import render from django.http import Http404 from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger from django.db import connection from .models import Post, Tag, Categroy from config.models import SideBar from comment.models import Comment # Create your views here. ~~~ * 提取共同數據,博客系統的 側邊欄 ~~~ 1.categroy = Categroy.objects.filter(status=1) 注最好將1給予實際命名 # 從一個sql 中取出兩種狀態 兩個方式 不推薦進行了兩次sql: categroy.filter(is_nav=True) categroy.filter(is_nav=False) 2.推薦:使用下面案例寫法 ~~~ ~~~ def get_common_context(): # 類別展示 categories = Categroy.objects.filter(status=1) nav_cates = [] cates = [] for cate in categories: if cate.is_nav: nav_cates.append(cate) else: cates.reverse(cate) # 邊欄展示 side_bars = SideBar.objects.filter(status=1) recently_posts = Post.objects.filter(status=1)[:10] # host_posts = Post.objects.filter(status=1).order_by('views')[:10] recently_comments = Comment.objects.filter(status=1)[:10] context = { 'nav_cates':nav_cates, "cates":cates, 'side_bars':side_bars, 'recently_comments':recently_comments, 'recently_posts':recently_posts, } return context ~~~ * 首頁展示 ~~~ def post_list(request, category_id=None, tag_id=None): current_page = request.GET.get("page", 1) page_size = 2 # 分頁 異常處理 try: current_page =int(current_page) except: current_page = 1 queryset = Post.objects.all() if category_id: queryset = queryset.filter(category_id=category_id) # 多對多數據處理 elif tag_id: try: tag = Tag.objects.get(id=tag_id) except Tag.DoesNotExist: queryset = [] else: queryset = tag.post_set.all() # 分頁 paginator = Paginator(queryset.order_by('id'), page_size) try: posts = paginator.page(current_page) except EmptyPage: posts = paginator.page(paginator.num_pages) context = { "posts":posts, } # 對共同數據處理添加 common_context = get_common_context() context.update(common_context) return render(request, 'blog/list.html', context=context) ~~~ * 內容展示 ~~~ def post_detail(request, post_id=None): queryset = Post.objects.all() if post_id: try: queryset = queryset.get(id=post_id) except Post.DoesNotExist: raise Http404("不存在") context = { "posts": queryset } common_context = get_common_context() context.update(common_context) return render(request, 'blog/detail.html', context=context) ~~~ >[danger] ##### html * base.html 模板頁面 ~~~ <h1>list</h1> <ul> {% for cate in nav_cates %} <li> <a href="{% url 'category' cate.id %}">{{ cate.name }}</a> </li> {% endfor %} </ul> {% block content %} {% if posts %} {% for post in posts %} title: <a href="{% url 'detail' post.id %}">{{ post.title }}</a><br> desc:{{ post.desc }} <hr/> {% endfor %} {% if posts.has_previous %}<a href="?page={{ posts.number|add:"-1" }}">上一頁</a>{% endif %} page {{ posts.number }} of {{ posts.paginator.num_pages }}. {% if posts.has_next %}<a href="?page={{ posts.number|add:"1" }}">下一頁</a>{% endif %} {% else %} 沒有數據 {% endif %} <hr/> {% endblock %} <ul> {% for cate in cates %} <li> <a href="{% url 'category' cate.id %}">{{ cate.name }}</a> </li> {% endfor %} </ul> // 側邊展示 <ul> {% for side in side_bars %} <h4>{{ side.title }}</h4> <div> {% if side.display_type == 1 %} {{ side.content|safe }} {% elif side.display_type == 2 %} <ul> {% for post in recently_posts %} <li>{{ post.title }}</li> {% endfor %} </ul> {% elif side.display_type == 4 %} <ul> {% for comment in recently_commnent %} <li>{{ comment.content }}</li> {% endfor %} </ul> {% endif %} </div> <div> {{ side.display_type }} </div> {% endfor %} </ul> ~~~ * 首頁 ~~~ {% extends 'blog/base.html' %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> </html> ~~~ * 內容頁 ~~~ {% extends "blog/base.html" %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% block content %} <h1>detail</h1> <a href="/"></a> {{ posts.content }} {% endblock %} </body> </html> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看