Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件
一、首先我们用PyCharm来创建一个Django项目



常用命令:
python manage.py runserver 127.0.0.1:8080 运行
python manage.py startapp appname 创建app
python manage.py syncdb
python manage.py makemigrations
python manage.py migrate
python manage.py syncdb 同步数据库
python manage.py createsuperuser 创建用户
三、运行


四、添加一个url页面



五、模板渲染



六、模版语言
模板中也有自己的语言,该语言可以实现数据展示
{{ item }} {% for item in item_list %} <a>{{ item }}</a> {% endfor %} //for循环 forloop.counter //计数器 forloop.first //第一个 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中创建templatetags模块
b、创建任意 .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文件中导入之前创建的 xx.py 文件名
html文件最顶部导入
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中配置当前app,不然django无法找到自定义的simple_tag


八、母版、子版、include
子板:{% extends "base.html" %}
{% block title %}{% endblock %}
母版

子版

include


创建一个子版son的目录

访问http://127.0.0.1:8000/son/

九、静态文件配置




十、Django登陆实例
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 > |
登陆测试验证
密码错误时
密码正确时
十一、Model操作数据库增删改查
1、创建model类

2、注册APP,settings添加app
3、生成相应的表

4、admin后台注册表

对数据进行增删改查
查

成功获取数据
增


删

改

参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?