django2 反向选择,胡子,过滤器,引用,继承

url渲染和反向选择

(1)url渲染

urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/', views.bookhandles, name="book"),
  #re_path(r'^book/$', views.bookhandles, name="book"), 匹配/book/
#re_path(r'^book/', views.bookhandles, name="book"), 匹配/book/开头
#url(r'^book/(?P<year>\d{4})', views.bookhandles, name="book"), 分组匹配,有命名
  #path('articles/<int:year>/', views.year_archive),高版本的命名分组 ]

'int': IntConverter():一个或多个整数(0-9)
'path': PathConverter():所有字符串
'slug': SlugConverter():英文中的横杆或者英文字符或者阿拉伯数字或者下划线
'str': StringConverter(): 除了斜杠/以外的所有字符
'uuid': UUIDConverter():只有满足uuid形式的字符


(2)反向选择

html中

<form action="{% url 'book' %}" method="post">
    {% csrf_token %}
    <div><input type="text" name="username">username</div>
    <div><input type="text" name="password">password</div>
    <div><input type="submit" value="login"></div>
</form>

views中

return redirect(reverse('book'))

 模板变量

{{ year }} #使用year变量

{% for i in lis %}
#循环
{{ i }}
{% endfor %}

{% if condition %}
{{ do something }}
#条件 {% endif %}

内置过滤器

 

{{ name|lower }}#使用管道符号(|)来应用过滤器

常用过滤器

{{ value | add:"1" }}  # 如果value等于1,add加上1
{{ value | cut:"a" }}  # 如果value为"babalala",cut效果为"bbll"
{{ value | date:"Y-m-d H:i:s" }}  # 如果value为时间对象,date展示效果为把时间对象格式化为2020-08-3 12:04:25
{{ value | defult:"Nothing at all" }}  # 如果value是""(空字符串),defult展示后面的默认值"Nothing at all"

其它length,lower,upper,random ,cap,join

小数过滤器floatformat

{{ value|floatformat:3 }} # 四舍五入,3代表保留三位小数

{{ value|floatformat:"0" }} # 四舍五入,取整

静态文件引用和模板继承

(1)静态文件引用

#settings文件配置STATICFILES_DIRS 和STATIC_URL
STATICFILES_DIRS = (

os.path.join(BASE_DIR, "static"),
) #在static文件在project下生效

STATIC_URL='/static/' #在static在app下生效

html中

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
{#    <link rel="stylesheet" href="/static/css/crm/index.css">#}
    <link rel="stylesheet" href="{% static 'css/crm/index.css' %}">
</head>
<body>  
        <p>页面</p>
</body>
</html>

 

(2)模板继承

使用模板继承可以少写大量的HTML代码

新建base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    
    <link rel="stylesheet" href="../static/bootstrap/css/bootstrap.min.css">
    <script src="../static/bootstrap/js/jquery-3.2.0.min.js"></script>
    <script src="../static/bootstrap/js/bootstrap.min.js"></script>
    
    {% block title%}
        base
    {% endblock %}
    <title>base引用的写法</title>
</head>
<body>
<div>
    {% block content%}
        page content
    {% endblock %}
</div>
</body>

在新建的HTML中继承base.html

{% extends 'base.html' %}

必须放在子页面的第一行

把需要重写的block复制重写内容

posted @ 2020-08-14 19:05  inhocho  阅读(20)  评论(0)    收藏  举报