国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > Django-從0到1寫出一個全面的網(wǎng)頁(1)模板和靜態(tài)圖片

Django-從0到1寫出一個全面的網(wǎng)頁(1)模板和靜態(tài)圖片

時間:2023-06-08 13:39:02 | 來源:網(wǎng)站運(yùn)營

時間:2023-06-08 13:39:02 來源:網(wǎng)站運(yùn)營

Django-從0到1寫出一個全面的網(wǎng)頁(1)模板和靜態(tài)圖片:

前需準(zhǔn)備

  1. 請看我的第一篇文章,用Django寫出最簡單的網(wǎng)頁??梢詭е蠹覐臒o到有,寫出一個含有"Hello, world!"的基本網(wǎng)頁。最基礎(chǔ)的下載等基本操作都在這篇文章了,本系列文章屬于更“高級”一點,所以不會再花時間在這方面了。
2. How to tango with Django 1.7。這是一本英文寫的手把手教你使用Django的好書,舊版本是online免費(fèi)的,新版本都需要付費(fèi)。本系列文章就是根據(jù)這本書提供的步驟所寫,因為1.7版本很老舊,我也費(fèi)了很大的功夫更新了一番。大家要是有時間,也推薦好好翻閱一下這本書。

3. django 官網(wǎng)。大家要是還有更多空閑時間想繼續(xù)深入了解,官網(wǎng)必不可少。

本文目標(biāo)

了解template engine 模板引擎和 如何在自己的網(wǎng)頁中加入靜態(tài)圖片。


如果你已經(jīng)讀完我的第一篇Django 基礎(chǔ)文章并且每步都跟著做的話,我確信你應(yīng)該已經(jīng)有了你的Django作為框架的網(wǎng)頁了。但那只是一些view文件,把一些URL 映射組合在了一起。今天這篇文章帶大家深入了解怎么樣把模板和先前的組合在一起。

1. 配置(configure)模板目錄

如果我們想讓模板能夠順利使用,我們先得建立一個目錄儲存我們所有的模板文件。

在你的Django 主文件夾/目錄(我的是<workspace>/zhou/)中,新建一個文件夾,我們就叫它templates 吧。然后在這個新的templates 文件夾中,再新建一個文件夾,為了向前期準(zhǔn)備2中的書本致敬,我們叫它rango。而在<workspace>/zhou/templates/rango/里,就會存放我們所有的和rango 程序相關(guān)的模板了。

現(xiàn)在為了讓我們的Django 主項目知道我們的模板位置,讓我們打開文件夾<workspace>/zhou/zhou中的settings.py 文件,在其中的TEMPLATES 中的‘DIRS' 里加入我們新建的templates文件夾所在的路徑。

TEMPLATES = [ { 'DIRS': ['<workspace>/zhou/', ], }]


2. 動態(tài)路徑

硬編碼 (hard-coding)路徑問題的解決方案是使用內(nèi)置的Python函數(shù)來自動計算模板目錄所在的路徑。這樣,無論我們將Django項目的代碼放在文件系統(tǒng)的哪兒,我們都可以獲得絕對路徑(absolute path, 絕對路徑有稱為完整路徑,它指向文件系統(tǒng)中的相同位置而不考慮當(dāng)前工作目錄)。這也意味著我們的項目代碼變得更加可移植 (portable)。

在新版本的Django 的settings.py 文件中, 我們有一個已經(jīng)內(nèi)置的變量叫做BASE_DIR

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))這是用來存儲指向你項目中settings.py 模塊所在目錄的路徑。

還是在settings.py 文件中,

TEMPLATES = [ { 'DIRS': ['<workspace>/zhou/', TEMPLATE_PATH, BASE_DIR + '<workspace>/zhou/templates/rango', ], }]什么是TEMPLATEPATH呢?我們可以在settings.py 文件的開頭,BASE_DIR 下面闡明。

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')


3. 添加一個模板

在我們的<workspace>/zhou/templates/rango 目錄中,新建一個叫做 index.html的文件,在文件中放入HTML代碼。

<!DOCTYPE html><html> <head> <title>Eva</title> </head> <body> <h1>Eva says...</h1> hello world! <strong>{{ boldmessage }}</strong><br /> <a href="/rango/about/">About</a><br /> </body></html>這段HTML代碼很簡單,標(biāo)題是Eva, 主體標(biāo)題是Eva says....., 內(nèi)容是hello world!,大寫加粗。然后是一個現(xiàn)在還用不到的about鏈接。

現(xiàn)在回到我們的<workspace>/zhou/eva (就是先前在創(chuàng)建app時候你自己取的名字,我在我的第一篇基本文章中使用的代碼是

python3 manage.py startapp polls 我這里用的是

python3 manage.py startapp eva

文件夾中,打開views.py 文件,確認(rèn)一下下面這段代碼在文件開頭。一般默認(rèn)是早就在了的。

from django.shortcuts import render現(xiàn)在在views.py 文件中,更新下index() view 程序

def index(request): # Construct a dictionary to pass to the template engine as its context. # Note the key boldmessage is the same as {{ boldmessage }} in the template! context_dict = {'boldmessage': "I am bold font from the context"} # Return a rendered response to send to the client. # We make use of the shortcut function to make our lives easier. # Note that the first parameter is the template we wish to use. return render(request, 'rango/index.html', context_dict)記得保存哦!

好了,現(xiàn)在讓我們來看看我們的網(wǎng)頁是怎么樣的了。在自己的瀏覽器輸入http://127.0.0.1:8880/eva/ 這里的eva是我的app 名字,需要更改為你自己的app名。

如果一切順利的話,你將會看到下面的頁面。

YAY!

接下來就是怎么上傳圖片到網(wǎng)頁了。




4. 配置(configure)靜態(tài)媒體目錄

標(biāo)題中所說的靜態(tài)媒體在我們的文章中就是指圖片。

和配置模板目錄一樣,如果我們想讓靜態(tài)媒體能夠順利使用,我們先得建立一個目錄儲存我們所有的圖片文件。

在我們的主目錄,<workspace>/zhou/中,創(chuàng)建一個新文件夾,static,并在其中再創(chuàng)一個新文件夾,images。

然后我們在images文件夾中放入一張自己喜歡的圖片吧。我在這里放的是django同名steam 游戲圖片。

好了,現(xiàn)在我們得讓django知道我們有了一個static 目錄;就像我們在創(chuàng)建templates 目錄讓django知道路徑一樣。在我們的<workspace>/zhou 文件夾里settings.py 文件中,我們需要放入兩個新變量,STATIC_URL 和 STATICFILES_DIRS 元組(tuple)。應(yīng)該是在文件的末尾

# Static files (CSS, JavaScript, Images)# Managing static files (e.g. images, JavaScript, CSS)STATIC_PATH = os.path.join(BASE_DIR,'static')STATIC_URL = '/static/' #這個應(yīng)該已經(jīng)有了STATICFILES_DIRS = ( STATIC_PATH,)這里的STATIC_URL 代表了基本的URL,當(dāng)你的服務(wù)器運(yùn)行時候,你的Django 程序會發(fā)現(xiàn)你的靜態(tài)媒體文件。

STATICFILES_DIRS 允許我們指定新建 static目錄的位置。




5. 靜態(tài)媒體文件和模板

現(xiàn)在我們打開我們先前創(chuàng)建的index.heml 文件,修改一下

<!DOCTYPE html>{% load staticfiles %}<!-- 新加第一行 --><html> <head> <title>Eva</title> </head> <body> <h1>Eva says...</h1> hello world! <strong>{{ boldmessage }}</strong><br /> <img src="{% static "images/django.jpg" %}" alt="Picture of Django" /> <!-- 新加第二行 --> <a href="/rango/about/">About</a><br /> </body></html>新加的第一行讓我們的Django 模板系統(tǒng)知道我們再用靜態(tài)媒體。

新加的第二行說明這是我們要用的圖片,alt是以防萬一有啥問題圖片顯示不出,也能有文字顯示。

讓我們保存下文件,刷新下網(wǎng)頁。一切都對的話,我們將看到下面的頁面。

下面這段代碼演示了我們怎么子使用JavaScript, CSS,我們現(xiàn)在看看就好了。

<!DOCTYPE html>{% load staticfiles %}<html> <head> <title>Eva</title> <link rel="stylesheet" href="{% static "css/base.css" %}" /> <!-- CSS --> <script src="{% static "js/jquery.js" %}"></script> <!-- JavaScript --> </head> <body> <h1>Eva says...</h1> hello world! <strong>{{ boldmessage }}</strong><br /> <img src="{% static "images/django.jpg" %}" alt="Picture of Django" /> <!-- New line --> </br> <a href="/rango/about/">About</a><br /> </body></html>我順便使用了</br> 空了一格,讓about 鏈接格式顯得更好看一點。




6. 靜態(tài)媒體服務(wù)器

現(xiàn)在我們可以在網(wǎng)頁上顯示靜態(tài)圖片了,下一步就是怎么讓網(wǎng)頁的用戶可以在未來上傳圖片。這一部分用來展示如何向Django 項目添加一個簡單的開發(fā)媒體服務(wù)器。開發(fā)媒體服務(wù)器可以與我們將在登錄教程中講提到的文件上傳教程一起使用。

那么我們怎么建立一個簡單的開發(fā)媒體服務(wù)器呢?首先讓我們在主目錄建立一個新文件夾,media。接著我們在<workspace>/zhou/zhou 中的 urls.py 文件中添加如下代碼。

from django.conf import settingsfrom django.conf.urls.static import staticif settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)當(dāng)你的urls.py文件更新完成以后,我們需要修改一下settings.py 文件;我們需要設(shè)置兩個變量的值,MEDIA_URL 和 MEDIA_ROOT

#Media MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'media')一切順利的話,我們需要做的就是把一張圖片放入我們創(chuàng)建的 media文件夾里,然后在瀏覽器中輸入

http://127.0.0.1:8880/media/django.jpg我這里用的port 是8880,只要保持和你運(yùn)行主程序相同的port 就可以。如果能看到圖片,恭喜你,成功啦!

現(xiàn)在你只需要溫習(xí)一下這篇文章,并期待我們的下一篇 Django-從0到1寫出一個全面的網(wǎng)頁(2)模型和數(shù)據(jù)庫。




如果你覺得我的文章有用,順手點個贊,關(guān)注下我的專欄或則留下你的評論吧!















關(guān)鍵詞:模板,和靜,圖片

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉