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

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

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


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

from django.http import HttpResponse
django

def student(request):app

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

    return render(request,'student.html')ide


3.在urls.py中實現路由優化

from app01 import views
url

urlpatterns = [spa

    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

相關文章
相關標籤/搜索