python——模板學習

  • 模板html

  • 建立項目前端

    • 初始化項目python

    django-admin startproject tmpl
    cd tmpl
    python manage.py startapp learn
    • 修改tmpl/settings.pydjango

    ALLOWED_HOSTS = [
      '虛擬機ip地址',
      'www.mysite.com'
      ]
      
    INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
     
    'learn',
    )
  • 在learn目錄下新建templates文件夾session

    cd templates
    touch index.html

    index.html內容以下:app

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>TMPL Index</title>
    </head>
    <body>
        <div>TMPL  Index</div>
    </body>
    </html>
  • 修改learn/views.py
    修改以下:url

from django.shortcuts import render
 
 
def home(request):
    return render(request, 'index.html')
  • 修改tmpl/urls.py
    修改以下:code

from django.conf.urls import url
from django.contrib import admin
from learn import views as learn_views
 
 
    urlpatterns = [
        url(r'$', learn_views.home, name='home'),  # 新增
        url(r'^admin/', admin.site.urls),
    ]

備註:若是有多個應用時,能夠在templates文件夾下新建一個learn文件夾,把模板文件index.html移動到templates/learn/下,views.py中的home方法也須要做出相應的修改:server

def home(request):
    return render(request, 'learn/index.html')

這樣作的目的是,讓Django可以正確查找到home.htmlhtm

  • 模板繼承
    在templates/learn新建base.html,內容以下:

<!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>{% block title %} 默認標題{% endblock %}</title>
    </head>
    <body>
        {% block content %}
        <div>這裏是默認內容區</div>
        {% endblock %}
    </body>
    </html>

修改index.html, 修改以下:

{% extends 'learn/base.html' %}
{% block title %} 首頁 {% endblock %}

{% block content %}
    <div> 這裏是首頁 </div>
{% endblock %}
  • 運行

python manage.py runserver 0.0.0.0:8000

主機訪問:www.pyl.com:8000 ,輸出:這裏是首頁

  • 感受 寫習慣了前端,以爲模板繼承寫起來好麻煩,還要加{% %}和標記開頭和結束,jade模板語法很好看,要是Python模板的語法也那樣就行了

相關文章
相關標籤/搜索