[英]Django returning static HTML in views.py?
所以我有一個標准的Django
項目,其基本視圖返回一個簡單的 HTML 確認語句。 我是否可以將視圖本身中的所有 HTML 定義為一個非常長的字符串並使用HttpResponse()
返回它我知道這有點unorthodox
,但這是我正在考慮的一個例子:
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import render_to_response
def index(request):
html = """
<html>
<body>
This is my bare-bones html page.
</body>
</html>
"""
return HttpResponse(html)
我相應的JS
和stylesheets
將存儲在與視圖相同的目錄中。 在此示例中,我的應用程序中的 py 。 只是確保:我不是在問這是否有效,因為我已經知道答案是肯定的,我只是想知道這種方法是否有任何缺點/缺點,為什么不讓更多人這樣做?
大多數人不使用它,因為它將Python與HTML混合在一起,變得非常混亂,並且很快無法使用
您可以使用內置的模板渲染器來獲取作品過濾器/ templatetags / etc
回答你的問題,這個解決方案沒問題,但它並沒有被許多程序員采用,因為它使整個代碼雜亂無章,不容易理解。 此外,該系統不適用於大型項目,因為代碼將在與 python 相同的文件中包含大量 html。 根據性能將代碼分成文件總是很好且節省時間。
將 html 保存在當前目錄中名為templates
的文件夾中,在這種情況下, templates
文件夾可以包含index.html
文件,該文件將具有
<html>
<body>
This is my bare-bones html page.
</body>
</html>
在視圖中使用下面的代碼為此模板創建一個索引視圖
def index(request):
return render(request, 'index.html')
def index(request):
context = {
"name":"some name"
}
return render(request, 'index.html', context=context)
使用以下結構訪問 html 中的數據:
<html>
<body>
The data passed to the page is {{name}}.
</body>
</html>
我希望這有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.