python django學習總結(二)Web框架Django,如何返回靜態HTML頁面

Web框架Django,如何返回靜態HTML頁面,遵守這三個步驟:

1.準備前端html文件(在templates裏面建立html)


2.在views.py中處理html文件的返回

from django.http import HttpResponse

def student(request):

    """返回靜態html文件"""

    return render(request,'student.html')


3.在urls.py中實現路由

from app01 import views

urlpatterns = [

    path('admin/', admin.site.urls),

    path('',views.index),

    #假如我們想用戶輸入http://127.0.0.1:8000/student/來打開我們製作的html界面,那操作如下:

    path('student/', views.student),

]

#備註 student後面斜槓不要掉,還有index啊 student這樣的方法,在此處都不要方法的括號

5.Web框架Django,如何返回靜態HTML頁面.png


返回靜態html擴展問題1:如果我們自己新建一個文件夾譬如叫abc 我們在abc文件夾裏面新建html  不在templates裏面建

那麼程序怎麼寫 讓返回abc文件夾裏面的靜態HTML頁面呢?【這個叫做templates文件夾設定】

步驟1.pycharm內右鍵文件夾 置爲templates文件夾 (這步驟弄了,敲幾個前面字母可以自動pycharm補全!我去了這個步驟,感覺可有可無,關鍵是要有步驟2)

步驟2.找到settings.py文件,將abc類比之前的templates文件夾一樣加入到合法DIRS裏,如下

TEMPLATES = [

    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        'DIRS': [os.path.join(BASE_DIR, 'templates'),os.path.join(BASE_DIR, 'abc')]

        ,


6.返回靜態html擴展問題1:如果我們自己新建一個文件夾譬如叫abc 我們在abc文件夾裏面新建html  不在templates裏面建.png



返回靜態html擴展問題2:在django中,html頁面中所依賴的css、js、images、font等等靜態文件,默認情況下都是阻止訪問的,需要進

行單獨的配置!!!!

步驟1.建立靜態文件的文件夾 通常單獨建立一個文件夾  習慣叫static,因爲靜態文件有css、js、images、font等等靜態文件,

所以我們還會在static文件夾下再分細類建立css、js、images、font等文件夾

步驟2.配置文件夾爲項目的合法靜態文件夾-----在settings.py文件用到的關鍵字STATICFILES_DIRS!!!

如:#配置靜態文件夾,可以用序列或者元組,下面我用的是元組!

STATICFILES_DIRS = (

    os.path.join(BASE_DIR,'static'),

)

步驟3.如何訪問這些靜態文件

在settings.py文件下的 STATIC_URL = '/static/' 含義是“靜態文件的訪問url”

譬如項目/static/css/student.css 所以那麼html代碼那裏引用這個css是寫 href="/static/css/student.css"

又譬如譬如項目/static/images/1.jpg 外面人打開這個1.jpg可以通過http://127.0.0.1:8000/static/images/1.jpg打開!!

(步驟3注意的是href="/static/css/student.css"或者http://127.0.0.1:8000/static/images/1.jpg的static不是那個我們新建文件夾的名字,而是

這個STATIC_URL = '/static/'裏面的字 如果你改爲STATIC_URL = '/static11/'!那麼訪問就是用href="/static11/css/student.css"和http://127.0.0.1:8000/static11/images/1.jpg )



關於步驟3我改了STATIC_URL = '/static/'的名字 可能如果你程序很多地方是直接使用這個/static/名字進行引用靜態文件的,導致你程序裏面

每一處都要去修改這個名字,其實django提供了一個引用手段,利用在html開頭加入{% load staticfiles %} 之後程序裏面可以用{% static 'images/2.jpg' %}代替!避免產生我說的這種麻煩!

實打實用真名的例子:

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<h1>老師文件夾~!!!!!!!!!!!!</h1>

<img src="/static/images/2.jpg" width="200" height="200" />

</body>

</html>



通過引用代號方式的例子,那麼不管STATIC_URL = '/static/'的名字變爲什麼名字 程序都不需要做改動了:

{% load staticfiles %}

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<h1>老師文件夾~!!!!!!!!!!!!</h1>

<img src="{% static 'images/2.jpg' %}" width="200" height="200" />

</body>

</html>

返回靜態html擴展問題2:在django中,html頁面中所依賴的css、js、images、font等等靜態文件,默認情況下都是阻止訪問的,需要進行單獨配置.png



靜態文件,默認情況下都是阻止訪問的,需要進行單獨的配置!單獨配置過程如下圖返回靜態html擴展問題2的解決辦法.png


下面這些是演示在settings.py文件下的 STATIC_URL = '/static/' 含義是“靜態文件的訪問url”涉及的理解和優化問題




返回靜態html擴展問題2的解決辦法完美解決版本:django提供了一個引用手段,利用在html開頭.png

返回靜態html擴展問題2的解決辦法-如何訪問這些靜態文件再次驗證路徑是根據那個來寫的.png

返回靜態html擴展問題2的解決辦法完美解決版本.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章