Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件
?
一、首先我們用PyCharm來創(chuàng)建一個(gè)Django項(xiàng)目
終端命令:django-admin startproject sitename 圖形創(chuàng)建: 這樣一個(gè)Django項(xiàng)目就創(chuàng)建完成了,上面可以看到項(xiàng)目的一個(gè)結(jié)構(gòu) 接下來創(chuàng)建一個(gè)APP 二、創(chuàng)建APP 進(jìn)入到項(xiàng)目所在目錄執(zhí)行命令 C:\Users\yangmingwei\PycharmProjects\yangmv>?python manage.py startapp web 上圖可以看到APP的一個(gè)結(jié)構(gòu)常用命令:
python manage.py runserver 127.0.0.1:8080??運(yùn)行
python manage.py startapp appname? ??? ? 創(chuàng)建app
python manage.py syncdb? ??? ??? ??? ??? ??? ??
python manage.py makemigrations
python manage.py migrate
? ????python manage.py syncdb? ??? ??? ? 同步數(shù)據(jù)庫
? ????python manage.py createsuperuser?創(chuàng)建用戶
三、運(yùn)行
python manage.py runserver 0.0.0.0:8080 這樣一個(gè)APP就運(yùn)行起來了 python manage.py syncdb ?建立數(shù)據(jù)庫,創(chuàng)建用戶后,即可登陸Django admin后臺(tái) http://127.0.0.1:8000/admin/四、添加一個(gè)url頁面
五、模板渲染
用法和jinja2相同六、模版語言
模板中也有自己的語言,該語言可以實(shí)現(xiàn)數(shù)據(jù)展示
{{ item }} {% for item in item_list %} <a>{{ item }}</a> {% endfor %} //for循環(huán)forloop.counter //計(jì)數(shù)器forloop.first //第一個(gè)forloop.last {% if ordered_warranty %} {% else %} {% endif %} //if語句母板:{% block title %}{% endblock %} 子板:{% extends "base.html" %}{% block title %}{% endblock %}
幫助方法: {{ item.event_start|date:"Y-m-d H:i:s"}} {{ bio|truncatewords:"30" }} {{ my_list|first|upper }} {{ name|lower }}
?
?七、自定義simple_tag
a、在app中創(chuàng)建templatetags模塊
b、創(chuàng)建任意 .py 文件,如:xx.py
from django import templatefrom django.utils.safestring import mark_safefrom django.template.base import resolve_variable, Node, TemplateSyntaxError register = template.Library() @register.simple_tagdef my_simple_time(v1,v2,v3): return v1 + v2 + v3 @register.simple_tagdef my_input(id,arg): result = "<input type='text' id='%s' class='%s' />" %(id,arg,) return mark_safe(result)c、在使用自定義simple_tag的html文件中導(dǎo)入之前創(chuàng)建的 xx.py 文件名
html文件最頂部導(dǎo)入
| 1 | {%?load xx?%} |
d、使用simple_tag
| 1 2 | {%?my_simple_time?1?2?3%} {%?my_input?'id_username'?'hide'%} |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | {% load xx %} <!DOCTYPE html> <html lang="en"> <head> ????<meta charset="UTF-8"> ????<title></title> </head> <body> ????<h1>我是index</h1> ????<h2>{{ name }}</h2> ????<h2>{{ age }}</h2> {% my_simple_time 1 2 3 %} ????{% my_input 'id_username' 'hide' %} </body> </html> |
e、在settings中配置當(dāng)前app,不然django無法找到自定義的simple_tag
運(yùn)行后返回?
八、母版、子版、include
母板:{% block title %}{% endblock %}子板:{% extends "base.html" %}
{% block title %}{% endblock %} ? ??? ??? {% include 'include/input.html' %}? ?
母版
子版
include
創(chuàng)建一個(gè)子版son的目錄
訪問http://127.0.0.1:8000/son/
九、靜態(tài)文件配置
十、Django登陸實(shí)例
導(dǎo)入bootstrap登陸頁面代碼 + View Code?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <form class="form-horizontal"> ??<div class="form-group"> ????<label for="inputEmail3" class="col-sm-2 control-label">Email</label> ????<div class="col-sm-10"> ??????<input type="email" class="form-control" id="inputEmail3" placeholder="Email"> ????</div> ??</div> ??<div class="form-group"> ????<label for="inputPassword3" class="col-sm-2 control-label">Password</label> ????<div class="col-sm-10"> ??????<input type="password" class="form-control" id="inputPassword3" placeholder="Password"> ????</div> ??</div> ??<div class="form-group"> ????<div class="col-sm-offset-2 col-sm-10"> ??????<button type="submit" class="btn btn-default">Sign in</button> ????</div> ??</div> </form> |
?
?
登陸測(cè)試驗(yàn)證
密碼錯(cuò)誤時(shí)
密碼正確時(shí)
?
?
?
十一、Model操作數(shù)據(jù)庫增刪改查
1、創(chuàng)建model類
??2、注冊(cè)APP,settings添加app
3、生成相應(yīng)的表
python manage.py makemigrations ? ? python manage.py migrate? ?4、admin后臺(tái)注冊(cè)表
后臺(tái)可以管理,添加數(shù)據(jù)?
?
后臺(tái)可以管理,添加數(shù)據(jù)?
?
對(duì)數(shù)據(jù)進(jìn)行增刪改查
查
models.UserInfo.objects.all()?
?
?成功獲取數(shù)據(jù)
?
增
models.UserInfo.objects.create(user=a_user,pwd=a_pwd)刪
models.UserInfo.objects.filter(user=a_user).delete()改
models.UserInfo.objects.filter(user=a_user).update(pwd='520')?
參考
?
轉(zhuǎn)載于:https://www.cnblogs.com/JetpropelledSnake/p/9201577.html
總結(jié)
以上是生活随笔為你收集整理的Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 24.下拉列表的交互事件
- 下一篇: RocketMQ之Pull消费者客户端启