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這樣的方法,在此處都不要方法的括號
返回靜態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')]
,
返回靜態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>
靜態文件,默認狀況下都是阻止訪問的,須要進行單獨的配置!單獨配置過程以下圖
下面這些是演示在settings.py文件下的 STATIC_URL = '/static/' 含義是「靜態文件的訪問url」涉及的理解和優化問題