首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python Django开发 经验技巧总结(二)

文章目录 1.模板中变量的运算 2.getlist获取多个值 3.查询集去重distinct()方式 4.模板中的for循环计数实现自增 5.查询数据库时,按照desc倒序返回数据 6.静态文件添加背景图片...3.查询集去重distinct()方式 # 学习该课程的用户,首先获取该课程在UserCourse对应关系,然后查询UserCourse表中的所有用户,使用distinct()去重 user_courses...endfor %} 但是在Django中,并不直接支持形如"int i = 0;i的循环,Django有自己的自增方法,假设v1内有2个元素: (1)从1开始正向自增...结果True,False {% for row in v1 %} {{forloop.first}} {% endfor %} (7)如果有多层循环,返回上层循环的全部取值的结果...※注意:开启服务的主机和申请访问的设备必须在同一局域网下,即具有相同的访问IP。

70920

35.Django2.0文档

forloop.counter 总是一个表示当前循环的执行次数的整数计数器。 这个计数器是从1开始的,所以在第一次循环时 forloop.counter 将会被设置为1。...在第一次执行循环时,该变量会被置为序列的项的个数减1 forloop.first 是一个布尔值,如果该迭代是第一次执行,那么它被置为```` {% for item in lists %}...forloop.last 是一个布尔值;在最后一次执行循环时被置为True。...如果查询没有返回结果也会抛出异常:  6.数据排序 在运行前面的例子中,你可能已经注意到返回的结果是无序的。 我们还没有告诉数据库 怎样对结果进行排序,所以我们返回的结果是无序的。...限制返回的数据 ? 7.更新和删除对象 update()方法对于任何结果集(QuerySet)均有效,这意味着你可以同时更新多条记录。

11.3K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django之模板系统

    变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。   深度查询据点符(.)在模板语言中有特殊的含义。当模版系统遇到点(".")...,不需要写括号来执行,并且只能执行不需要传参数的方法,如果你的这个方法需要传参数,那么模板语言不支持,不能帮你渲染 ?...safe     Django的模板中在进行模板渲染的时候会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全,django担心这是用户添加的数据,比如如果有人给你评论的时候写了一段...为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。     ...django也存着这个东西,和你这个值相同的一个值,可以做对应验证是不是我给你的token,存储这个值的东西我们后面再学,你先知道一下就行了,就像一个我们后台给这个用户的一个通行证,如果你用户没有按照我给你的这个正常的页面来

    1.3K20

    Django 模板

    HTML取值 变量相关:{{变量名}} 逻辑相关:{% 表达式 %} 在取值的时候需要注意以下几点 * 传递函数名会自动加括号调用,并返回return后的值 * 传递类名会自动加括号调用实例化成对象...后端: 使用views.py 的 mark_safe 效果相同 Django 会自动对 views.py 传到HTML文件中的标签语法进行转义,令其语义失效。...1 forloop.revcounter0: 倒序获取循环序号,结尾序号为 0 forloop.first(一般配合if标签使用): 第一条数据返回 True,其他数据返回 False forloop.last..., "b", "c", "d", "e"] return render(request, 'func.html', locals()) {% empty %} {% empty %} 从句:在循环为空的时候执行...会判断,这个随机字符串是不是第一次它发给用户的那个,如果是,则数据提交成功,如果不是,则返回403权限错误。

    4.8K10

    后端框架学习-Django

    简易图: 用户操作流程图: ---- MTV 模型 Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指...) 等价于 条件查询 返回值:QuerySet,存放模型实例 exclude(条件) 语法同上 等价于 WHERE NOT 作用:返回不包含此条件的全部数据集 电商取非可以用该语句...字典 分组聚合 其实是为了实现Having语句 通过计算查询结果中每一个对象所关联的对象集合,从而得出总计值,为查询集的每一项生成聚合 QuerySet.annotate(结果变量名(别名)=聚合函数...一对多查询 核心:正向属性(authors)和反向属性(book_set) 在多表上设置外键,关联一表。...如果有上一页返回True previous_page_number():返回上一页的页码,如果上一页不存在,抛出InvalidPage异常。

    9.6K40

    04.Django基础四之模板系统

    变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。   深度查询据点符(.)在模板语言中有特殊的含义。当模版系统遇到点(".")...,它将以这样的顺序查询:     字典查询(Dictionary lookup)     属性或方法查询(Attribute or method lookup)     数字索引查询(Numeric...safe     Django的模板中在进行模板渲染的时候会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全,django担心这是用户添加的数据,比如如果有人给你评论的时候写了一段...,和你这个值相同的一个值,可以做对应验证是不是我给你的token,存储这个值的东西我们后面再学,你先知道一下就行了,就像一个我们后台给这个用户的一个通行证,如果你用户没有按照我给你的这个正常的页面来post.... {% endblock content %}     在大型模版中,这个方法帮你清楚的看到哪一个  {% block %} 标签被关闭了。 不能在一个模版中定义多个相同名字的 block 标签。

    2.6K30

    django入门:视图及模版

    创建 django 视图 普通视图 1.首先在应用文件夹下创建 urls.py 文件,用来配置视图的 url,然后我们需要在项目下的 urls.py 文件中将该应用的 urls 配置进去 # 在项目下...def index(request): return HttpResponse("Hello django") 3.在应用下的 urls.py 文件中将视图文件配置进去 from django.conf.urls...%}标签后,forloop就不可访问了 forloop.counter/counter0 循环的执行次数的整数计数器,从1/0开始计数 forloop.revcounter/revcounter0 循环执行后的剩余项数量...,首次执行为总数/总数减一,最后置为1/0 forloop.first/last 首次/最后一次迭代为 True forloop.parentloop 当前循环的上一级循环的 forloop...date:"xxx",按指定的格式字符串参数格式化 date 或者 datetime 对象,例如 {{ pub| date:"F j, Y" }} length,返回变量的长度;对于列表,返回列表元素的个数

    1K20

    django基础之二

    对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。         ...最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。         如果要动态生成HTML,就需要把上述步骤自己来实现。...Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM)...通过反射机制,为django开发一套动态的路由系统Demo: 点击下载 五、模板: 1、模版的执行 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中...,最后将信息返回给用户 def current_datetime(request): now = datetime.datetime.now() html = "

    1.7K40

    Django Web开发基础知识

    ,而对于非常复杂的查询工作,还是要使用纯SQL语句来写。...Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值: M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM...2.如果没有创建app的名字,也可以在进入django目录中,执行 python manage.py startapp MyWeb 命令创建. 更多django shell命令行参数。...0 forloop.first 当遍历的元素为第一项时为真 forloop.last 当遍历的元素为最后一项时为真 forloop.parentloop 用在嵌套的 for 循环中,获取上一层...: Form表单可以返回默认数据,我们可以通过编号查询到指定数据的默认参数,并返回到编辑框中. # name:views.py from django.shortcuts import render from

    2.2K20

    Django的模板系统

    ,不需要写括号来执行,并且执行不需要传参数的方法,如果你的这个方法 需要传参数,那么模板语言不支持,不能帮你渲染 三.过滤器   在Django的模板语言中,通过使用 过滤器来改变变量的显示.   ...等语法标签进行自动转义,原因显而易见,这样是为了安全,django担心这是用户添加的数据,比如如果有人给你评论的时候写了一段js代码,这个评论一提交,js代码就执行啦,这样你是不是可以搞一些坏事儿了,写个弹窗的死循环...为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。     ...django也存着这个东西,和你这个值相同的一个值,可以做对应验证是不是我给你的token,存储这个值的东西我们后面再学,你先知道一下就行了,就像一个我们后台给这个用户的一个通行证,如果你用户没有按照我给你的这个正常的页面来...其他的任何情况下,模版继承都将无法工作,模板渲染的时候django都不知道你在干啥。 在base模版中设置越多的 {% block %} 标签越好。

    1.7K10

    python终极篇 ---django

    Django模板中只需要记两种特殊符号: {{  }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作 变量 {{ 变量名 }} 变量名由字母数字和下划线组成。....操作只能调用不带参数的方法 #} {{ person_list.0.dream }} 注:当模板系统遇到一个(.)时,会按照如下的顺序去查询: 在字典中查询 属性或者方法 数字索引                                   ...为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。...: Variable Description forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) forloop.revcounter...当前循环的倒序索引值(从1开始) forloop.revcounter0 当前循环的倒序索引值(从0开始) forloop.first 当前循环是不是第一次循环(布尔值) forloop.last 当前循环是不是最后一次循环

    78210

    Django入门

    一般是用户通过浏览器向服务器发送一个请求(request),首先会去访问视图函数,如果不涉及数据的调用(那么这个时候视图函数返回一个模板,也就是你一个网页给用户),视图函数调用模型,模型去数据库查找数据...,然后逐级返回,视图函数把返回的数据填充到模板的空格中,最后返回网页给用户 四、Django的基本命令 下载 cmd命令行:pip3 install django,或可以指定版本号下载:pip3...# 1 单表查询所有用户: models.User.objects.all() # 得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2] #...views.author 这个函数的内存地址,在浏览器输入该路由,就会响应到这个函数,而通过Django内部就可以调用该函数执行其逻辑代码 ''' url(正则表达式, views视图函数, 参数,...() 定义参数 可以接受参数,并返回一个字典 函数头上加装饰器 @register.inclusion_tag('模板页面') 函数将返回的字典交给模板页面渲染 渲染完成之后交给视图然后返回给用户展示

    2.2K11

    Python Day16 Django

    Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的时候调用Model...换句话讲,所有的请求方法 —— 同一个URL的POST、GET、HEAD等等 —— 都将路由到相同的函数 将url匹配文件写到不同的app中有利于解耦,因此用到url分发 第一步,在url后面引入include...6位数字,2表示必须有两位小数,1111.22这样的形式 一旦你建立好数据模型之后,django会自动生成一套数据库抽象的API,可以让你执行关于表记录的增删改查的操作 技巧 通过logging可以查看翻译成的...migrate --> 把上面的改动翻译成SQL语句,然后去数据库中执行 方法2:在pycharm中启动manage.py控制台 ?...) values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 order_by(*field): 对查询结果排序

    1.9K10

    Django之Template介绍及日常应用

    模板是由context来进行渲染的。渲染的过程是用在context中找到的值来替换模板中相应的变量,并执行相关tags。其他的一切都原样输出。Django模板语言的语法包括四个结构。...值,判断是不是循环的最后一个元素 forloop.parentloop: 用在嵌套循环中,得到parent循环的引用,然后可以使用以上参数 4 {% cycle %} 在循环是轮流使用给定的字符串列表中的值...加载器 模板加载器负责定位模板,加载它们,并返回模板对象. Django提供几个内置的模板加载器并且支持自定义的模板加载器....大家使用Django的模板的时候可能都用过{{request.user}}来获取登录的用户或者判断是否登录呢?...就是我们在模板里面可以调用的一个上下文。

    1.4K20

    Django 学习笔记之模板

    模板通常是 HTML 文件,只不过其中带有特定的语句。这些语句是用来存储并显示数据库中返回的数据。另外,除了 HTML 文件外,Django的模板也能产生任何基于文本格式的文档。...在每个 {% for %}循环中有一个被称为 ** forloop ** 的模板变量。这变量提供一些带有循环进度信息的属性。 forloop.counter 表示当前循环的执行次数的总数。...forloop.counter0 类似于 forloop.counter ,但是它是从0计数的。 第一次执行循环时这个变量会被设置为0。...forloop.revcounter 是记录循环中还没有被遍历项的总数。循环初次执行时 forloop.revcounter 将被设置为序列的长度。 最后一次循环执行中,这个变量将被置1。...forloop.revcounter0 类似于 forloop.revcounter ,但它以0做为结束索引。因此,第一次循环执行的时候,该变量的值为 序列的长度减 1。

    2K00

    Python进阶28-Django 模板层(Jinja2)

    6)SQL执行及审批流程。 7)慢查询日志分析web界面。 ---- 模板层介绍 ---- 模版简介 你可能已经注意到我们在例子视图中返回文本的方式有点特别。...站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多。...}} 返回 ‘asdik’ slugify 在字符串中留下减号和下划线,其它符号删除,空格用减号替换 {{ '5-2=3and5 2=3' | slugify }} 返回 5-23and5-23 stringformat...中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名只能是templatetags) 3.创建任意...2.在base模版中设置越多的 {% block %} 标签越好。请记住,子模版不必定义全部父模版中的blocks,所以,你可以在大多数blocks中填充合理的默认内容,然后,只定义你需要的那一个。

    1.8K20
    领券