Web框架Django,如何返回靜態(tài)HTML頁面,遵守這三個步驟:
創(chuàng)新互聯(lián)專注于東坡企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。東坡網(wǎng)站建設(shè)公司,為東坡等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1.準(zhǔn)備前端html文件(在templates里面建立html)
2.在views.py中處理html文件的返回
from django.http import HttpResponse
def student(request):
? ? """返回靜態(tài)html文件"""
? ? return render(request,'student.html')
3.在urls.py中實現(xiàn)路由
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這樣的方法,在此處都不要方法的括號
返回靜態(tài)html擴(kuò)展問題1:如果我們自己新建一個文件夾譬如叫abc 我們在abc文件夾里面新建html? 不在templates里面建
那么程序怎么寫 讓返回abc文件夾里面的靜態(tài)HTML頁面呢?【這個叫做templates文件夾設(shè)定】
步驟1.pycharm內(nèi)右鍵文件夾 置為templates文件夾 (這步驟弄了,敲幾個前面字母可以自動pycharm補全!我去了這個步驟,感覺可有可無,關(guān)鍵是要有步驟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')]
? ? ? ? ,
返回靜態(tài)html擴(kuò)展問題2:在django中,html頁面中所依賴的css、js、images、font等等靜態(tài)文件,默認(rèn)情況下都是阻止訪問的,需要進(jìn)
行單獨的配置?。。?!
步驟1.建立靜態(tài)文件的文件夾 通常單獨建立一個文件夾? 習(xí)慣叫static,因為靜態(tài)文件有css、js、images、font等等靜態(tài)文件,
所以我們還會在static文件夾下再分細(xì)類建立css、js、images、font等文件夾
步驟2.配置文件夾為項目的合法靜態(tài)文件夾-----在settings.py文件用到的關(guān)鍵字STATICFILES_DIRS!??!
如:#配置靜態(tài)文件夾,可以用序列或者元組,下面我用的是元組!
STATICFILES_DIRS = (
? ? os.path.join(BASE_DIR,'static'),
)
步驟3.如何訪問這些靜態(tài)文件
在settings.py文件下的 STATIC_URL = '/static/' 含義是“靜態(tài)文件的訪問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"或者h(yuǎn)ttp://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 )
關(guān)于步驟3我改了STATIC_URL = '/static/'的名字 可能如果你程序很多地方是直接使用這個/static/名字進(jìn)行引用靜態(tài)文件的,導(dǎo)致你程序里面
每一處都要去修改這個名字,其實django提供了一個引用手段,利用在html開頭加入{% load staticfiles %} 之后程序里面可以用{% static 'images/2.jpg' %}代替!避免產(chǎn)生我說的這種麻煩!
實打?qū)嵱谜婷睦樱?/p>
? ?
? ?
通過引用代號方式的例子,那么不管STATIC_URL = '/static/'的名字變?yōu)槭裁疵?程序都不需要做改動了:
{% load staticfiles %}
? ?
? ?
靜態(tài)文件,默認(rèn)情況下都是阻止訪問的,需要進(jìn)行單獨的配置!單獨配置過程如下圖
下面這些是演示在settings.py文件下的 STATIC_URL = '/static/' 含義是“靜態(tài)文件的訪問url”涉及的理解和優(yōu)化問題