python之路(18)django框架入门

前言

  Django框架下的views,templates


views视图函数的属性方法

http下有两个核心类:HttpResquest类和HttpResponse类

requesr
    request.path : 当前url访问的路径
    request.get_full_path() : url带参数的全路径
    request.method : 返回请求的方式,即GET或POST
    request.POST.get("") / GET.get("") : 得到value

redirect
    redirect(".html") : 跳转html界面,需要导入redirect

render
    render(request,".html",{key:value}) : 渲染templates
    render(request, ".html", locals()) : 将函数中的所有变量传给模板
    render_to_response(".html",{key:value}) : 同render(),不需要request参数,要导入render_to_response

templates模板语法

模板的组成:html代码+逻辑控制语句

变量{{var_name}}
    {{var_name}} : 用两个大括号来引用变量
    {{var_name.1}} : 用变量.下标的形式显示列表
    {{var_name.key}} : 用变量.key的形式显示字典,同样可以显示类属性

过滤器{{obj|filter:param}}
    {{var_name|first}} : 取字符串的第一个
    {{var_name|length}} : 取字符串的长度
    {{var_name|slice:-1}} : 切片
    {{var_name|urlencode}} : 进行url编码
    {{var_name|add:50}} : 给变量加上相应的值
    {{var_name|addslashes }} : 给变量引号前加入相应的值
    {{var_name|capfirst }} : 首字母大写
    {{var_name|cut:" " }} : 移除指定的字符
    {{var_name|date:"Y-m-d" }} : 自定制时间格式(Y年,m月,d天)
    {{var_name|default:" " }} : 如果变量没空,返回默认值
    {{ name|default_if_none:" " }} : 如果变量为none,返回默认值
    {{var_name|safe}} : 如果传递为html语言,并需要别渲染,就要加上safe

标签(tag){% tags %} {% endtags %}
    {% url ‘‘ %} : 引用路由配置的地址
    {% autoescape off  %}{% endautoescape %} : 关闭安全机制,直接渲染html语句,同{{var_name|safe}}
    {% if %} {% elif %} {% else %} {% endif %}: 判断
    {%for value in var_name %} {% empty %}{% endfor %} : 遍历,value为值
            {{forloop.counter}}显示索引,默认1开始,
            {{forloop.counter0}默认0开始
            {{forloop.revcounter}}倒数
            {{forloop.frist}}当第一次遍历为true
            {% empty %} : 如果为空则进入
    { % csrf_token %} : post数据提交安全机制,添加钥匙
    {% with simpename = longname%} {% endwith %}: 用简单的名字代替复杂的名字
    {% verbatim %} {% endverbatim %}: 禁止render
    {% load %} : 加载标签库

自定制filter和simple_tag

  a、在app中创建templatetags模块

  b、创建任意.py文件,如:my_tags.py

from django import template
from django.utils.safestring import mark_safe

register = template.Library()  #register的名字是固定的

@register.filter #装饰器
def fliter_multi(x,y):
    return y

@register.simple_tag
def simple_tag_multi(x,y):
    return x*y

myTag.py

 c、在使用自定制simple_tag和filter的gtml文件中导入my_tags.py : {% load my_tags.py%} 顶行写

    d、使用filter和simple_tag

{% load myTag %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

{# 传参数只能传一个#}
{{ var_name|fliter_multi:l }}

{# 不能用在控制语句之中#}
{% simple_tag_multi 3 5 %}

</body>
</html>

index.html

  e、在settings中INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag

继承标签extend和添加标签include

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <div>父界面</div>

    <div>
        {% block content %}

            {# 这里是子界面 #}
        {% endblock %}

    </div>
</body>
</html>

father.html

{% extends "father.html" %}
{# 继承父界面的所有内容 #}

{% block content %}
     {# 子界面内容 #}
{% endblock %}

son.html

原文地址:https://www.cnblogs.com/shuzhixia/p/11031001.html

时间: 2024-11-01 09:48:24

python之路(18)django框架入门的相关文章

python之路-----搭建django框架

1.在yaolansvr 192.168.0.3上安装Python-3.4.3.tar.xz 使用Xmanager5的Xftp5将文件上传到ftp目录 2.安装源码的python 注意: (1)Ignoring ensurepip failure: pip 6.0.8 requires SSL/TLS 解决:需要安装yum -y install openssl-devel.x86_64 # yum list all|grep glibc glibc.x86_64                

[Python] Django框架入门

说明:Django框架入门 当前项目环境:python3.5.django-1.11 项目名:test1 应用名:booktest 命令可简写为:python manager.py xxx => ./manager.py xxx 准备:已经安装python并加入环境变量 已安装 django 设计框架对比(引用,可自行搜索): 1.MVC MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用 m表示model,主要用于对数据库的封装 v表示

Python之路,Day15 - Django适当进阶篇

Python之路,Day15 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣和效率最高的,今天就来基于下面的需求来继续学习Django 项目需求: 1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户要有咨询纪录, 后续的定期跟踪纪录也要保存6

Python之路,Day16 - Django 进阶

Python之路,Day16 - Django 进阶 本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproject.com/en/1.9/topics/pagination/ 自定义template tags https://docs.djangoproject.com/es/1.9/howto/custom-template-tags/ 权限管理 django 自带有基本的权限管理 ,但粒度和限制权限的维度

Django框架入门

Django框架入门 HTTP协议 四大特性 基于TCP/IP协议之上作用于应用层的协议 基于请求响应 无状态 无连接 请求响应的数据格式 请求格式 请求首行 请求头 \r\n 请求体(在这个地方区分get请求与post请求:get请求无请求体) 响应格式 响应首行 响应头 \r\n 响应体 状态码: 1XX:服务器已接收到请求正在处理,可以继续发送请求 2XX:响应成功 例如:200 3XX:一般为重定向 例如:304 4XX:请求错误 常见的有: 403(不满足请求条件,拒绝访问),404(

Windows上python开发--2安装django框架

上一篇文章中讲了如何在windows上安装和开发python.这篇文章需要在上一篇的基数上进行.首先确保你的windows上python可以正常运行. 在安装django之前,我们应该先安装一个esay_install 的python工具,通过该工具可以很轻松安装各种扩展的框架和package. 不用你先到第三方网站下载tar.gz 包,然后用python setup.py install 安装. 1.下载安装easy-install 的tools. easy-install 的官方地址: ht

[Python] Django框架入门5——静态文件、中间件、上传图片和分页

说明: 本文主要描述Django其他的内容,涉及静态文件处理.中间件.上传文件.分页等. 开发环境:win10.Python3.5.Django1.10. 一.静态文件处理 在Django项目的静态文件主要指的是css.js和图片等文件. 1.配置静态文件 在settings.py文件中配置静态内容: STATIC_URL:在html文件中使用的路径,如:"/static/images/logo.png". STATICFILES_DIRS:指静态文件在项目的存放位置. 2.新建目录

Python开发之Django框架入门(1)Django安装

Django是一个python类库,使用前必须安装好python.推荐使用Python3,支持python2.7的最新Django版本为1.11LTS. 一.安装方式: 使用pip命令安装. pip install Django==2.1      (此命令可以指定安装版本) pip install Django               (此命令安装最新版本) 使用pip卸载旧的版本 How to get Django Django is available open-source unde

[Python] Django框架入门3——深入视图

说明: 本文主要深入了解视图(views.py),涉及路由配置.定义视图.Request对象.Response对象.状态保持等. 一.路由配置 1.配置位置(settings.py 的 ROOT_URLCONF) 在settings.py中的ROOT_URLCONF指向的urls.py则是主要的路由配置文件. 2.修改主路由文件(test2.urls) 1 from django.conf.urls import url, include 2 from django.contrib import