好比 if for jquery引入 修改時間格式 模板繼承html
咱們在生產中會發現寫的平臺頂部導航欄,和左側菜單欄都是相同的。這樣咱們能夠把它寫成模板,寫的時候回只寫主體部分,繼承菜單欄和導航欄,來省略大量代碼jquery
編輯login.htmldjango
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo01</title> </head> <body> <h1>{{obj.username.0}}</h1> {% for item in obj_li %} <div> {% if item.username == 'zzxx' %} <span>{{ item.username }}</span> <span>{{ item.password }}</span> {%endif %} </div> {% endfor %} </body> </html>
urlsapp
from django.contrib import admin from django.conf.urls import url,include from app1 import views urlpatterns = [ url('admin/', admin.site.urls), url('login/', views.login),
views測試
def login(request): if request.method == 'GET': obj_li = models.U1serInfo.objects.all() for obj in obj_li : print('username :',obj.username) print('password :',obj.password) return render(request,'login.html',locals())
template中url
{% load staticfiles%} ##django中導入靜態文件 <script src = "{% static 'test.js' %}"></script> ##寫在title下面
在setting中增長spa
STATIC_URL = '/static/' STATIC_DIRS = ( os.path.join(BASE_DIR,"static/") )
==mark== 後面的東西有點亂,先pass。後面用到在回顧一下3d
html中的一些繼承,傳參,方法code
{{ test }} {{ test|cut ' '}} ## 切片 <br> ## 換行 {{ d }} {{ d|date:'Y-m-d' }} ## 時間格式
詳細介紹 http://www.cnblogs.com/onda/p/7380850.htmlorm
上面是一些Django自帶的方法;當咱們須要一些Django沒有的方法的時候,咱們就須要用到simple_tag這個功能
咱們要寫一個將時間戳轉換爲普通時間格式的方法
一、寫方法
方法能夠寫在任意APP下
必須建立包(含init文件)
包名必須是 templatetags
以後建立的py文件就能夠隨意取名
而後開始寫方法
from django.template import Library register = Library() ##對象名必須是register @register.filter() ##這其實就是個裝飾器 def filter_func(x,y): return x+y @register.simple_tag def simple_func(a,b,t): s = "{0}——{1}——{2} 2019-1-5".format(a,b,t) return s
二、 在配置文件中更改
將你寫的包所在在app名字(咱們的例子中,app名爲Django111)放在 INSTALLED_APPS 中
三、 在html中引用咱們寫的simple_tag方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django111</title> </head> <body> <h3> {{ a }}</h3> <h3> {{ b }}</h3> <h3> {{ test }}</h3> {% load my_tag %} {{ a|filter_func:b }} <br> {% simple_func a b test %} </body> </html>
用多個參數請重寫simple_tag 方法
urls
urlpatterns = [ url (r'admin/', admin.site.urls), url('login/', views.login), url('temtest/', views.temtest), ]
views
def temtest(request): if request.method == 'GET': a = 1 b = 2 test = '1654646136543' return render(request, 'temtest.html', locals())
訪問 127.0.0.1:8000/temtest/
建立的是package
包名必須取templatetags
app加入配置文件
base.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django11</title> </head> <body> <h1> 我是頂部菜單 </h1> <div> {% block content %} {% endblock %} </div> </body> </html>
子html
好比咱們剛纔寫的temtest.html,咱們用它來繼承base.html
{% extends 'base.html' %} {% block content %} <h3> {{ a }}</h3> <h3> {{ b }}</h3> <h3> {{ test }}</h3> {% load my_tag %} {{ a|filter_func:b }} <br> {% simple_func a b test %} {% endblock %}
訪問