国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python之django框架入門,看完你就會

這篇具有很好參考價值的文章主要介紹了python之django框架入門,看完你就會。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.創(chuàng)建Django項目

?2.創(chuàng)建Django應(yīng)用

?3.定義ORM模型

4.創(chuàng)建并執(zhí)行數(shù)據(jù)庫遷移

5.定義視圖函數(shù)

6.定義URL路由

7.編寫模板


Django是一個基于Python的Web框架,它旨在提供開發(fā)人員一個高效而且富有靈活性的工具集。它包含了一套完整的組件,涵蓋了從路由、視圖、模板、表單到ORM等多個方面,能夠讓開發(fā)人員快速搭建一套高質(zhì)量的Web應(yīng)用。Django也是Python社區(qū)最主流的Web框架之一,許多知名網(wǎng)站如Instagram、Pinterest和Mozilla等都基于Django構(gòu)建。

在本篇文章中,我們將為大家介紹如何搭建一個簡單的Django應(yīng)用,并為您提供詳細的代碼示例。本文假設(shè)讀者已經(jīng)掌握了Python基礎(chǔ)及Web開發(fā)相關(guān)知識,并安裝了Django(本文中使用的版本為3.2.5)。

1.創(chuàng)建Django項目

首先,我們需要在本地創(chuàng)建一個新的Django項目。此處我們創(chuàng)建一個名為“myproject”的項目。

運行以下命令:

django-admin startproject myproject

創(chuàng)建好項目之后,我們會得到以下目錄結(jié)構(gòu):

myproject/
    manage.py
    myproject/
        __init__.py
        asgi.py
        settings.py
        urls.py
        wsgi.py

其中:

  • manage.py:Django項目的管理工具,通過它可以進行一些常用的操作,如啟動服務(wù)、創(chuàng)建數(shù)據(jù)庫等。
  • myproject/:項目的主目錄,也是Python包的聲明。其中包含了一些基礎(chǔ)文件,如項目配置文件(settings.py)、URL定義文件(urls.py)等。

?2.創(chuàng)建Django應(yīng)用

在項目中,我們可以創(chuàng)建多個Django應(yīng)用。每個Django應(yīng)用都是獨立的模塊,包含自己的URL映射、視圖、模板等組件。我們創(chuàng)建一個名為“blog”的應(yīng)用,來演示Django應(yīng)用的創(chuàng)建過程。

在項目根目錄下運行以下命令:

python manage.py startapp blog

創(chuàng)建好應(yīng)用之后,我們會得到以下目錄結(jié)構(gòu):

blog/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/
        __init__.py

其中:

  • init.py:空文件,讓Python將此目錄視為一個Python包。
  • admin.py:Django后臺管理的相關(guān)配置。
  • apps.py:應(yīng)用的一些元數(shù)據(jù)信息,如應(yīng)用名、版本號等。
  • models.py:ORM模型定義文件,用于與數(shù)據(jù)庫交互。
  • tests.py:Django測試相關(guān)的文件,可用于自動化測試。
  • views.py:視圖文件,定義了所有的視圖函數(shù)。

?3.定義ORM模型

在Django中,ORM模型映射數(shù)據(jù)庫中的表,我們可以通過ORM模型來操作對應(yīng)表中的數(shù)據(jù)。Django中的ORM模型以類形式表現(xiàn),一個模型類代表著一個表。在blog應(yīng)用中,我們定義一個名為Post的模型,用于存儲博客文章數(shù)據(jù)。

在blog/models.py中添加以下代碼:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=50)
    body = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

在上述代碼中,我們繼承了Django中的Model類,這使得此類變成了一個ORM模型。其中title、body、pub_date分別代表著博客文章的標題、正文和發(fā)布時間,類型分別為CharField、TextField和DateTimeField。str()方法定義了在調(diào)用print函數(shù)時顯示的字符串格式。

4.創(chuàng)建并執(zhí)行數(shù)據(jù)庫遷移

Django中的ORM模型一般需要基于其定義的結(jié)構(gòu)生成數(shù)據(jù)庫表結(jié)構(gòu)。為此,Django提供了一個叫做遷移(migrations)的機制,用來生成、修改和管理數(shù)據(jù)庫表結(jié)構(gòu)。通過運行以下命令,我們可以生成Post模型的遷移文件:

python manage.py makemigrations blog

接著,我們可以通過運行以下命令,在數(shù)據(jù)庫中創(chuàng)建Post模型對應(yīng)的表:

python manage.py migrate

5.定義視圖函數(shù)

視圖函數(shù)是Django應(yīng)用的核心組件之一,用于處理HTTP請求,并返回HTTP響應(yīng)。在我們的博客應(yīng)用中,我們定義一個主頁視圖和一個文章詳情視圖。在blog/views.py中添加以下代碼:

from django.shortcuts import render, get_object_or_404
from . models import Post

def home(request):
    posts = Post.objects.all().order_by('-pub_date')
    return render(request, 'blog/home.html', {'posts':posts})

def post_detail(request, post_id):
    post = get_object_or_404(Post, pk=post_id)
    return render(request, 'blog/post_detail.html', {'post':post})

在上述代碼中,我們使用了Django提供的render函數(shù),來渲染指定模板,并將指定的數(shù)據(jù)傳遞給模板。

注意,我們使用了get_object_or_404函數(shù),這個函數(shù)會在查詢結(jié)果為空時返回404錯誤頁面,而不是拋出異常。

6.定義URL路由

Django將URL路由映射為視圖函數(shù),我們需要在項目的urls.py中定義URL路由規(guī)則。在本例中,我們將博客應(yīng)用的主頁映射到“/”路徑,并將文章詳情頁面映射到“/post/<post_id>”路徑。

在myproject/urls.py中添加以下代碼:

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

urlpatterns = [
    path('', views.home, name='home'),
    path('post/<int:post_id>', views.post_detail, name='post_detail'),
    path('admin/', admin.site.urls),
]

在上述代碼中,我們使用了path函數(shù)來定義URL路由規(guī)則。注意,我們將其命名為home和post_detail。

7.編寫模板

最后一步是編寫模板,Django使用模板來生成最終的HTML頁面。在blog應(yīng)用中,我們創(chuàng)建了兩個模板,分別表示博客首頁和文章詳情頁面。新建blog/templates/blog/home.html文件,添加以下代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome to Blog</title>
</head>
<body>
    <h1>Blog</h1>
    <ul>
      {% for post in posts %}
        <li><a href="{% url 'post_detail' post.id %}">{{ post.title }}</a></li>
      {% endfor %}
    </ul>
</body>
</html>

在上述代碼中,我們使用Django模板系統(tǒng)中的for標簽遍歷查詢到的所有文章,并通過url模板標簽定義文章詳情頁面的URL地址。

接著,我們新建blog/templates/blog/post_detail.html文件,添加以下代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ post.title }}</title>
</head>
<body>
    <h1>{{ post.title }}</h1>
    <p>{{ post.body }}</p>
    <p>{{ post.pub_date }}</p>
</body>
</html>

在上述代碼中,我們使用Django模板系統(tǒng)中的變量標簽來顯示文章的標題、正文和發(fā)布時間。

至此,我們已經(jīng)完成了一個簡單的Django應(yīng)用的搭建,可以在瀏覽器中訪問了。運行以下命令啟動Django開發(fā)服務(wù)器:

python manage.py runserver

然后在瀏覽器中訪問http://localhost:8000即可瀏覽博客首頁。點擊任意一篇文章的標題,即可前往文章詳情頁面。

本文僅涵蓋了Django的入門部分,Django框架擁有更加強大和豐富的功能,如表單、圖片上傳、用戶認證等等,讀者可以參考Django官方文檔深入了解。文章來源地址http://www.zghlxwxcb.cn/news/detail-709330.html

到了這里,關(guān)于python之django框架入門,看完你就會的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • AI繪畫是什么軟件?看完你就知道了

    AI繪畫是什么軟件?看完你就知道了

    你們知道嗎?AI繪畫軟件其實是通過AI技術(shù),繪畫出不同風格的畫,讓大家都可以根據(jù)自己的需求畫出漂亮的圖片;它還可以描述出自己想象的場景,并添加一張參考圖,隨后便自動生成畫作,那么你們知道智能AI繪畫免費軟件有哪些嗎?如果還不是很了解的話,那就跟著我一

    2024年02月11日
    瀏覽(20)
  • ai繪畫圖片美女怎么畫?看完你就知道了

    ai繪畫圖片美女怎么畫?看完你就知道了

    大家在剛開始接觸文生圖的AI繪畫的時候,是不是會因為在輸入描述詞時不知道應(yīng)該如何描述,而導致生成的圖片都比較簡單或者混亂,不符合自己的預(yù)期。 其實,我剛接觸AI繪圖也是這樣的,不過經(jīng)過我的探索,我用AI做的圖越來越漂亮了,給大家欣賞一下。 那么大家想知

    2024年02月14日
    瀏覽(23)
  • 月薪6000在中國什么水平?看完你就不焦慮了

    月薪6000在中國什么水平?看完你就不焦慮了

    今天刷到一個很扎心的問題:你對自己現(xiàn)在的收入滿意嗎? 多數(shù)人都是不假思索地反問:“怎么會滿意……” 都說掙錢夠用就行,誰又真正滿意過。 鏡頭前的主播抱怨忙,卻偷偷年收百萬,00后副業(yè)月入10萬,連知根知底的發(fā)小,也突然月入過萬。 而你拼命不比誰少, 跑進

    2023年04月22日
    瀏覽(22)
  • 無線路由器為什么需要重啟 看完你就知道

    無線路由器已經(jīng)成為每個家庭中不可或缺的網(wǎng)絡(luò)設(shè)備。使用WiFi網(wǎng)絡(luò),無論是上網(wǎng)刷微博,還是在線追劇,亦或是進行在線游戲,經(jīng)??D的現(xiàn)象是最讓人受不了的。有時候WiFi連接不佳,拍兩下路由器是沒有效果的。我們會重啟無線路由器,重啟后明顯會感覺的網(wǎng)絡(luò)變得流暢

    2024年02月05日
    瀏覽(30)
  • 【Unity】Time.deltaTime有什么用?看完你就明白

    大多數(shù)剛開始使用 Unity 的人(包括我),都會對 Time.deltaTime 感到迷惑。 看完本文,你就會明白 Time.deltaTime的定義及作用。 根據(jù)定義, Time.deltaTime是每一幀之間的時間間隔 (以秒為單位)。 這有助于我們使游戲與幀數(shù)無關(guān),也就是說,無論 fps 是多少,游戲都將以相同的速

    2024年02月16日
    瀏覽(22)
  • 電腦技巧:電腦關(guān)機、休眠、睡眠之間如何選擇,看完你就懂了

    電腦技巧:電腦關(guān)機、休眠、睡眠之間如何選擇,看完你就懂了

    目錄 一、關(guān)機、休眠、睡眠的區(qū)別? 1.關(guān)機 2.休眠?? 休眠的優(yōu)點 休眠的缺點 3.睡眠?? 睡眠的優(yōu)點 睡眠的缺點 二、什么時候關(guān)機/休眠/睡眠? 什么時候需要關(guān)機?? 什么情況下使用休眠模式? 什么情況下使用睡眠模式? 三、終極建議 電腦技巧:電腦關(guān)機、休眠、睡眠之

    2024年01月15日
    瀏覽(25)
  • 記錄--組件閱后即焚?掛載即卸載!看完你就理解了

    記錄--組件閱后即焚?掛載即卸載!看完你就理解了

    上家公司有個需求是批量導出學生的二維碼,我一想這簡單啊,不就是先批量獲取學生數(shù)據(jù),然后根據(jù) QRcode 生成二維碼,然后在用 html2canvas 導出成圖片嘛。 由于公司工具庫有現(xiàn)成的生成壓縮包方法,我只需要獲得對應(yīng)的圖片 blob 就可以了,非常的easy啊。 思路沒啥問題,但

    2024年02月05日
    瀏覽(19)
  • 網(wǎng)上宣傳的0月租流量卡是騙局嗎?看完你就知道了!

    網(wǎng)上宣傳的0月租流量卡是騙局嗎?看完你就知道了!

    大家一定要清楚一件事,目前三大運營商并沒有推出0月租流量卡,正規(guī)號卡都是有月租的,每月按時扣費。 而網(wǎng)上所謂的0月租流量卡其實都是“物聯(lián)卡”,又被 稱為“純流量卡”。 說到物聯(lián)卡,除了是0月租外,還有一個明顯的特點,就是功能單一,沒有手機號不能注冊,

    2024年02月13日
    瀏覽(21)
  • AI繪畫怎么操作?看完這篇你就會了

    AI繪畫怎么操作?看完這篇你就會了

    人工智能的快速發(fā)展正在為各個領(lǐng)域帶來革命性的變化,而藝術(shù)創(chuàng)作也不例外。一鍵AI繪畫軟件的出現(xiàn),使得藝術(shù)家們能夠借助智能助手的力量,以更加創(chuàng)新的方式進行藝術(shù)創(chuàng)作。這種軟件不僅簡化了創(chuàng)作過程,還為藝術(shù)家們提供了新的靈感和創(chuàng)意。那你們知道免費一鍵AI繪畫

    2024年02月13日
    瀏覽(15)
  • 阿里二面:adb 連接 Android 手機的兩種方式,看完你就懂了...

    阿里二面:adb 連接 Android 手機的兩種方式,看完你就懂了...

    隨著現(xiàn)在移動端技術(shù)的突飛猛進,導致現(xiàn)在市場上,APP 應(yīng)用數(shù)不勝數(shù),那對于測試工程師而言,對于 APP 的測試,那基本就是一個必修課了。 今天,我就來給大家介紹一下,adb?連接 Android 手機的兩種方式 先使用 USB 線,連接 PC 和手機 通過 PC 給手機安裝 adb 驅(qū)動,下載好安

    2024年03月22日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包