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

Django框架学习(三)

b)Django中的模板变量不能直接进行算术运算 2、模板控制语句:条件判断和for循环 a)条件判断:Django模板中在进行条件判断时候,比较操作符两边必须有空格 b)for循环:Django模板中的...# jinja2模板中for循环 {% for ... in ... %} # 遍历不为空时的逻辑 # 获取for循环遍历到了第几次 {{ loop.index }} {% else...%} # 遍历为空时的逻辑 {% endfor %} # Django模板中for循环 {% for ... in ... %} # 遍历不为空时的数据 # 获取for循环遍历到了第几次...Django中的id不需要定义,默认为我们添加了id,是主键,并且自增长。id可以使用pk代替(primary key) 定义字段名的时候,不允许使用连续的下划线。...字段类型 类型 说明 AutoField 自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性 BooleanField 布尔字段,值为True或False

1.8K40

Django 基础快速入门

Django 项目,那么此时你输入对应的 us 后则会执行绑定的处理方法跳转到静态 us.html : 五、静态模板中的文件引入 在 Django 的 html 文件中若要引入静态文件,需要在起 app...roles 值的第一个元素,刷新页面即可看到如下显示内容: 6.2 遍历取值 若当数组过多,取值并不方便且需要显示时,可以通过前端模板的循环语法取值。...在 Django 前端模板语法中,一个字典的键名有一个 keys 属性,通过 for 循环对这个属性进行遍历即可渠道所有的键名: keys 键名: {% for key in uinfo.keys...%} 随后在 for 循环开始以及 endfor 结束循环之间添加 if 语句的模板语法: {% if item.name == "郭" %} 以上模板语法表示 item(也就是遍历到的那一条字典数据中的...展开表后我们可以发现,在这张表中默认添加了一个 id 为主键,并且是可自增主键,这也是默认创建的方式之一: 若你还想创建多张表,只需要在 models.py 中创建多个类即可。

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

    Django入门:基于 Django 的 Web 页面开发

    功能要求: 具有文章列表页,文章详情页; 文章列表页点击文章可跳转到对应详情页; 文章列表页具有分页功能; 文章详细页具有上下文章跳转; 1、创建项目 使用 PyCharm 创建一个 DJango 项目...article_id:文章的标题,设置为主键并且自增,如果不设置也会有一个默认的主键; title 等属性都设置成了文本类型,因为要存的数据会很大。 那么如何将文件迁移到数据库呢?...4、页面展示 下面将数据库中的内容展示到页面上,这里使用 路由+模板引擎 ,该模板引擎就是你平常用的模板引擎,类似于 thymeleaf、freemark,官方文档:https://docs.djangoproject.com...然后根据传入的 Id 值遍历文章列表,寻找那个 id 值对应的文章,由于我们要遍历的对象没有索引,所以我们手动加上一个索引,使用enumerate函数遍历即可: def get_detail_page(...返回给前端如下信息: 文章集合; 当前页码; 前一页页码; 后一页页码; 总页数(可遍历); 前端去接收这些值,代码如下: ? 最核心的就是使用 for 循环去遍历得到的数据,然后分别展示。

    1.5K30

    Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

    在 Django 模板中遍历复杂数据结构的关键是句点字符  ....标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中。...有时候,想在父模板的基础上再添加点其他的,而不是完全覆盖父模板的内容,那么你只需要在想要填充的块里,再加上一句 {{ block.super }},我们就可以把父模板里的东西给留下来,如: 父模板中的...各个 app 的 templates 形成一个文件夹列表,Django 遍历这个列表,一个个文件夹进行查找,当在某一个文件夹找到的时候就停止,所有的都遍历完了还找不到指定的模板的时候就是 Template...这就需要把每个app中的 templates 文件夹中再建一个 app 的名称,仅和该app相关的模板放在 app/templates/app/ 目录下面, 例如:项目 zqxt 有两个 app,分别为

    2.6K80

    Django学习

    Django 应用 VS  Django项目一个Django项目就是一个基于Django的Web应用一个Django应用就是一个可重用的Python软件包Django应用可以自己管理模型、视图、模板、路由和静态文件等一个...函数--浏览器一、模型层简介1 模型层是什么位于Django视图层和数据库之间Python 对象和数据可之间转换屏蔽不同数据库之间的差异开发者更加专注于业务逻辑的开发提供很多便捷工具有助开发2 为什么需要模型层...3 模型层的相关配置二、创建博客文章模型1 设计博客模型文章标题--文本类型文章摘要--文本类型文章内容--文本类型唯一ID标记--Int数字类型(自增、主键)发布日期--日期类型2 模型层定义字段数字类型...--IntegerField文本类型--TextField日期类型--DateTimeField自增ID--AutoField主键定义--primary_key属性三、初始Django shell1 Django...HTML页面设计改变需要修改python代码网页逻辑和网页视图应该分开设计模板系统的表现形式是文本分离文档的表现形式和表现内容模板系统定义了特有的标签占位符2 基本语法变量标签 {{变量}}for 循环标签

    68520

    关于“Python”的核心知识点整理大全54

    对于每个网页,我们都将指定 URL模式,编写一个视图函数,并编写一个模板。但这样做之前,我们先创建一个父模板,项目 中的其他模板都将继承它。...要修改项目中的URL,只需修改urls.py 中的URL模式,这样网页被请求时,Django将自动插入修改后的URL。...子模板的第一行必须包含标签{% extends %},让Django知道它继 承了哪个父模板。...在包含数十乃至数百个网页的项目中,这种结构使得网站改进起来容易而且快捷得多。 注意 在大型项目中,通常有一个用于整个网站的父模板——base.html,且网站的每个主要部 分都有一个父模板。...在2处,我们使用了一个相当于for循环的模板标签,它遍历字典context中的列表topics。

    18010

    使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构)

    那么这种层级结构也成为树结构在日常的开发需求里也是很常见的,比如美多商城系统的商品分类,课程的目录章节,以及以及论坛里的帖子回复等等,本次我们后台利用Django来写一个能够返回层级结构数据的接口,接口将该数据以...首先,打开django项目中的models.py,新建一个类别的模型类,这里我们以最简单的parentid的形式来建立 class Cate(models.Model): #主键 通过参数声明主键...#父级id pid = models.IntegerField() #表名 class Meta: db_table = 'cate'      由于我们的项目基于...    ok,接口没有问题,现在我们把目光投向前端,打开vue项目,新建一个Reply.vue组件     所谓递归组件: 就是组件可以在它们自己的模板中调用自身,不过它们只能通过 name...:     当然了,vue组件也可以间接的调用自己实现递归,这涉及到组件之间的循环引用,这样比较麻烦,可读性也间接的降低了不少。

    68210

    Python Django 编程 | 连载 04 - Django 模板

    一、Django Template 模板 模板可以动态生成HTML网页,由HTML代码和特殊的模板语法组成。...Django 项目的模板文件是放置在 templates 目录下的,使用 PyCharm 创建的 Django 项目会在 settings 文件中的 TEMPLATES 中自动将模板位置配置好 在视图函数中使用...render(request, template_path, context) HTML模板中通过{{ 变量名 }}来渲染从后端传来的动态数据 使用 Pycharm 创建项目django_templates...会自定配置好模板路径 通过命令行创建的 django 项目,则需要手动添加模板路径 通过命令行创建zulu应用 python3 manage.py startapp zulu 在 zulu app...%} 模板继承 {% block data %} {% endblock %} 重写继承的父模板的内容 {% csrf_token %} 跨域秘钥 for 循环标签是模板中比较常用的标签,常常用来遍历输出列表中的数据

    86820

    35.Django2.0文档

    如果我们想退出循环,可以改变正在迭代的变量,让其仅仅包含需要迭代的项目。 同理,Django也不支持continue语句,我们无法让当前迭代操作跳回到循环头部。...子模板的作用就是重载、添加或保留那些块的内容。 所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。...注意由于子模板并没有定义 footer 块,模板系统将使用在父模板中定义的值。 父模板 {% block %} 标签中的内容总是被当作一条退路。继承并不会影响到模板的上下文。...如果你需要访问父模板中的块的内容,使用 {{ block.super }} 这个标签吧,这一个魔法变量将会表现出 父模板中的内容。...也就是说,block 标签不仅挖了一个要填的坑,也定义了在 父 模板中这个坑所填充的内容。如果模 板中出现了两个相同名称的 {% block %} 标签,父模板将无从得知要使用哪个块的内容。

    11.3K100

    Django中的模板相关

    ') 模板查找路径配置 在项目的 settings.py 文件中。...如果所有路径下都没有找到,那么会抛出一个 TemplateDoesNotExist 的异常。 模板语法 模板中可以包含变量, Django 在渲染模板的时候,可以传递变量对应的值过去进行替换。...forloop.revcounter :当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。...当然如果通过硬编码的方式直接将这个 url 写死在里面也是可以的。但是这样对于以后项目维护可能不是一件好事。因此建议使用这种反转的方式来实现,类似于 django 中的 reverse 一样。...示例代码如下: {{ value|truncatechars:5 }} 模板结构优化 引入模板 有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。

    19040

    django中ModelForm多表单组合的解决方案

    而django对表单的支持力度非常大,我们用不着在浏览器端的html文件里写大量代码,再到web端去匹配form里的id/name/value、验证规则,再与持久层数据库比较并做操作。...所以,在用CreateView、一个模型、一个模板实现添加一行记录的功能时是多么简单,因为这些父类会自动生成object,渲染到模板,解析form表单,save到数据库中。...拿上面提到的例子来说,我们创建合同时,指明了项目,包括项目地址和合同签订地址,这涉及到三张表和四条记录(地址表有两条)。...#按照四条数据库记录的顺序依次的创建(调用save方法)、主键赋到下一条记录的外键中、下一次记录创建(save)           projectAddress = context['projectAddressForm...'].save()           #从项目表单中获取到模型,先把地址的id赋到外键上再保存           project = context['projectForm'].save(commit

    3.4K20

    django 1.8 官方文档翻译: 2-3-1 模型实例参考

    pk 属性 Model.pk 无论你是自己定义还是让Django 为你提供一个主键字段, 每个模型都将具有一个属性叫做pk。它的行为类似模型的一个普通属性,但实际上是模型主键字段属性的别名。...显式指定自增主键的值 如果模型具有一个AutoField,但是你想在保存时显式定义一个新的对象ID,你只需要在保存之前显式指定它而不用依赖ID 自动分配的值: >>> b3 = Blog(id=3, name...当你调用save() 时,Django 使用下面的算法: 如果对象的主键属性为一个求值为True 的值(例如,非None 值或非空字符串),Django 将执行UPDATE。...关于这个细微差别的更多信息,参见上文的显示指定主键的值 和下文的强制使用INSERT 或UPDATE。 在Django 1.5 和更早的版本中,在设置主键的值时,Django 会作一个 SELECT。...__eq__() 定义这个方法是为了让具有相同主键的相同实类的实例是相等的。对于代理模型,实类是模型第一个非代理父类;对于其它模型,它的实类就是模型类自己。

    1.9K10

    django 菜鸟篇+进阶篇

    django自带web server, 故django开发的项目可以独立的运行,也可以安置在apache(+mod_python)下运行 django wiki django主页 django源码和api...;t.render(c)返回的是一个unicode对象,not 普通python字符串 7.在 Django 模板中遍历复杂数据结构的关键是句点字符(.)...yy %} {% endblock %} 模板继承就是先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载 12.如果你需要访问父模板中的块的内容,使用{ { block.super...}}这个标签吧,这一个魔法变量将会表现出父模板中的内容。...’,None),获取;session是一个类似于字典的结构;HttpRequest对象中除session以外,其他属性都应该当做只读属性用 这个项目做完以后推出进阶篇….. 1.django模板的html

    1.9K20

    PythonWeb框架之Django

    :模板文件夹,存放html文件的(页面),支持使用Django模板语言(DTL),也可以使用第三方(jinja2) # manage.py:项目管理器,与项目交互的命令行工具集的入口,查看支持的所有命令...变量名称中不能有空格或标点字符. 深度查询点符(.)在模板语言中有特殊的含义,当模板系统遇到点(".")...标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中。...# Django默认自动创建自增主键`id`,当然,你也可以自己指定主键。 # 上面的SQL语句基于`PostgreSQL`语法。...你通常不需要直接使用这个字段; 自定义一个主键:my_id=models.AutoField(primary_key=True) 如果你不指定主键的话,系统会自动添加一个主键字段到你的

    2.6K50

    04.Django基础四之模板系统

    变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。   深度查询据点符(.)在模板语言中有特殊的含义。当模版系统遇到点(".")...safe     Django的模板中在进行模板渲染的时候会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全,django担心这是用户添加的数据,比如如果有人给你评论的时候写了一段...标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中。...for标签     遍历每一个元素: 写个for,然后 tab键自动生成for循环的结构,循环很基础,就这么简单的用,没有什么break之类的,复杂一些的功能,你要通过js {% for person...五 模板继承   Django模版引擎中最强大也是最复杂的部分就是模版继承了。

    2.6K30

    Django 模板

    父模板 子模板 父模板如何划分区域 Django 模板 模板传值取值 后端传值 键值对形式:{‘name’:value} 精准传值,用啥传啥 函数:locals() locals()将当前名称空间中所有的变量名全部传递给页面...{% endif %} for 标签 每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容; 模板语法for循环和python 的for循环类似,支持in from...网页的头部和尾部内容一般都是一致的,我们就可以通过模板继承来实现复用。 父模板用于放置可重复利用的内容,子模板继承父模板的内容,并放置自己的内容。...父模板 标签 block...endblock: 父模板中的预留区域,该区域留给子模板填充差异性的内容,不同预留区域名字不能相同 {% block 名称 %} 预留给子模板的区域,可以设置设置默认内容...{% endblock 名称 %} 子模板 子模板使用标签 extends 继承父模板: {% extends "父模板路径"%} 子模板如果没有设置父模板预留区域的内容,则使用在父模板设置的默认内容

    4.8K10

    Django基础教程

    在 Django 模板中遍历复杂数据结构的关键是句点字符 (.)。 #最好是用几个例子来说明一下。...{% for %}标签允许你按顺序遍历一个序列中的各个元素,每次循环模板系统都会渲染{% for %}和{% endfor %}之间的所有内容 {% for obj in list %}...注意由于子模板并没有定义 footer 块,模板系统将使用在父模板中定义的值。 父模板 {% block %} 标签中的内容总是被当作一条退路。继承并不会影响到模板的上下文。...如果你需要访问父模板中的块的内容,使用 {{ block.super }}这个标签吧,这一个魔法变量将会表现出父模 板中的内容。...也就是说,block 标签不仅挖了一个要填的坑,也定义了在父模板中这个坑所填充的内容。如果模板中出现了两个 相同名称的 {% block %} 标签,父模板将无从得知要使用哪个块的内容。

    7.4K20

    Django的模板系统

    标签比变量更复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模板中.一些标签需要开始和结束标签(例如{% tag %} ...标签 内容 ... {% endtag...for标签     遍历每一个元素:写一个for,然后tab键自动生成for循环的结构,没有break之类的,复杂一些的功能,需要通过js {% for person in person_list %}...遍历字典 {% for key,val in dic.items %} {{ key }}:{{ val }} {% endfor %}   注:循环序号可以通过{{forloop}...五 模板继承   Django模板引擎中最强大的也是最复杂的部分就是模板继承.模板继承可以让你创建一个基本的骨架模板,它包含您站点的全部元素,并且可以定义能够被子木板覆盖的blocks. 模板"继承"了另一个模板.当模板系统处理这个模板的时候,首先,它将定位父模板----就是base.html   请注意,子模版并没有定义 sidebar block,所以系统使用了父模版中的值。

    1.7K10

    Django MVC概述和开发流程

    为school_test应用设计学校类和学生类 注:不需要定义主键,Django在迁移时会自动生成主键,并且值为自动增长 设计学校类 学校类: 类名:SchoolInfo 学校名:name 学校地点:addr...目录下生成迁移文件,如下图所示 打开上图中的迁移文件如下图,可以看到自动添加了主键id并且为自动增长 2.执行迁移 执行完后会在根目录下生成数据库文件,Django默认采用sqlite3...3.数据库操作 完成数据表的迁移之后,下面就可以通过进入项目的shell,进行简单的API操作。如果需要退出项目,可以使用ctrl+d快捷键或输入quit()。...1.创建模板文件 在Django项目根目录下创建templates目录,之后会在这个目录下创建若干个目录供各个应用使用,所以在该目录下创建与应用同名的目录,然后再创建index.html,创建完后目录结构如下图所示...设置Django项目的模板路径,打开与Django项目同名的子目录下的settings.py,在TEMPLATES中加入 TEMPLATES = [ { 'BACKEND':

    1.9K10
    领券