91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django中怎么請求HTML頁面視圖信息

發布時間:2021-07-22 13:59:35 來源:億速云 閱讀:134 作者:Leah 欄目:大數據

Django中怎么請求HTML頁面視圖信息,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1. 編寫用于查詢數據的功能函數

應用目錄 下的 views.py 文件通常用于保存響應各種請求的函數或類

from django.shortcuts import render
from .models import BlogArticles

# Create your views here.
def blog_title(request): # request 負責響應所接收到的請求
    # 查詢得到所有 BlogArticles 表中的所有實例數據
    blogs = BlogArticles.objects.all()
    """
    render() 作用是將數據渲染到指定模板上
    "blog/titles.html" 指定渲染到哪個頁面,頁面路徑為應用目錄下的templates目錄
    {"blogs": blogs} 為傳給頁面的數據
    """
    return render(request, "blog/titles.html", {"blogs": blogs})

2. 在應用目錄下創建相關html頁面文件

  • 文件目錄結構如下:

Django中怎么請求HTML頁面視圖信息

  • 編寫相關頁面代碼

<!-- base.html公共模板頁面 -->
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{% block title %}{% endblock %}</title> <!-- 表示里面的內容被 title block 代替 -->

    <!-- Bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

    <!--[if lt IE 9]>
      <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <div class="container">
        {% block content %} <!-- 表示頁面的內容被 content block 代替 -->
        {% endblock %}
    </div>
    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
  </body>
</html>

<!-- titles.html -->
{% extends "base.html" %} <!-- 繼承 base.html 模板頁 -->

{% block  title %}
博客標題
{% endblock %}

{% block content %}
    <div class="row text-center vertical-middles-sm">
        <h2>我的博客</h2>
    </div>
    <div class="row">
        <div class="col-xs-12 col-md-8">
            <ul>
                <!-- 循環遍歷 blogs 里的對象 -->
                {% for blog in blogs %}
                    <li>{{ blog.title }}</li>
                {% endfor %}
            </ul>
        </div>
    </div>
{% endblock %}

3. 配置URL

  1. 編寫 項目目錄 下的 urls.py 文件

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path("blog/", include('blog.urls')), # 通過這里將blog/請求轉向blog應用的urls.py,即./blog/urls.py文件
]
  1. 編寫 應用目錄 下的 urls.py 文件

from django.urls import path
from . import views

"""
第一個參數為空,表示訪問根,因為該文件在blog應用中,則要為blog/
views.blog_title 表示響應該請求的函數
"""
urlpatterns = [
    path('', views.blog_title),
]
  1. 啟動項目訪問:http://127.0.0.1:8000/blog/ 即可看到結果

4. 給url傳參數

  1. 修改 titles.html 文件給文章標題添加鏈接

<!-- 循環遍歷 blogs 里的對象 -->
{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}
  1. 為該請求編寫對應的函數(./blog/views.py)

def blog_article(request, article_id): # 該請求傳入 article_id 參數
    article = BlogArticles.objects.get(id=article_id)
    pub = article.publish
    return render(request, "blog/content.html",{"article":article, "publish":pub})
  1. 編寫顯示文件內容的html頁面(templates/blog/content.html)

{% extends "base.html" %} <!-- 繼承 base.html 模板頁 -->

{% block  title %}
博客標題
{% endblock %}

{% block content %}
    <div class="row text-center vertical-middles-sm">
        <h2>{{ article.title }}</h2>
    </div>
    <div class="row">
        <div class="col-xs-12 col-md-8 col-md-offset-2">
            <p class="text-center">
                <span>{{ article.author.username }}</span>
                <span >{{ publish }}</span>
            </p>
            <div>{{ article.body }}</div>
        </div>
    </div>
{% endblock %}
  1. 增加請求所對應的url(./blog/urls.py)

urlpatterns = [
    path('', views.blog_title),
    path('<int:article_id>/', views.blog_article),
]

URL配置和查詢

當用戶通過瀏覽器請求某個URL時,Django會根據請求路徑依次在URLConf中查詢,并將第一個符合條件的映射關系作為查詢結果。

例如,訪問 http://localhost:8000/blog/1,其請求過程如下:

  1. localhost:8000:主域名部分,不進行查詢

  2. /blog/:首先在 項目目錄/urls.py 中查詢,遇到符合條件的URL映射(path('blog/', include('blog.urls')),),根據此映射中的描述,到 blog.urls(./blog/urls.py) 中查詢

  3. /1:在 ./blog/urls.py 中有URL(path('<int:article_id>/', views.blog_article))配置,請求路徑正好符合,從而確定最終訪問的視圖函數 views.blog_article

看完上述內容,你們掌握Django中怎么請求HTML頁面視圖信息的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绍兴县| 武乡县| 新兴县| 来宾市| 连云港市| 衡阳市| 西城区| 昌黎县| 抚松县| 深水埗区| 都兰县| 九寨沟县| 肥城市| 冀州市| 马边| 鱼台县| 德江县| 三门县| 北碚区| 克什克腾旗| 隆安县| 屯留县| 宜兴市| 刚察县| 东光县| 新泰市| 浦县| 尉犁县| 奈曼旗| 浦江县| 焦作市| 昭平县| 乡城县| 日土县| 易门县| 甘洛县| 灌阳县| 横峰县| 永嘉县| 邯郸县| 武功县|