在这里,我们导入了模块learning_logs.models中的模型 Topic(见1),然后使用方法Topic.objects.all()来获取模型Topic的所有实例;它返回的是一个列表,称为查询集...编写用户可请求的网页时,我们将使用这种语法。确认代码能获取所需的数据时,shell很有 帮助。如果代码在shell中的行为符合预期,那么它们在项目文件中也能正确地工作。...如果代码引 发了错误或获取的数据不符合预期,那么在简单的shell环境中排除故障要比在生成网页的文件中 排除故障容易得多。...第一个是一个 正则表达式。Django在urlpatterns中查找与请求的URL字符串匹配的正则表达式,因此正则表达 式定义了Django可查找的模式。 我们来看看正则表达式r'^$'。...如果你不明白前面介绍的内容,也不用担心,你在完 成这个项目的过程中,将会看到很多正则表达式。
前言 关于如何快速基于Django使用别人写好的模版搭建网站之前已经有详细讲过,一般我们在Django中使用Bootstrap模版都需要经过以下几个步骤 下载一个Bootstrap模版 创建app并粘贴模板到对应的的...templates文件夹中 修改settings.py、urls.py、views.py等文件 创建static文件夹并修改相关css、js文件中的链接跳转 启动Django 最近在逛GitHub时发现一个名为...使用django-bootstrap3 首先我们需要下载安装django-bootstrap3插件,使用 pip install django-bootstrap3 即可成功安装,但是使用该插件需要:...Python版本> = 3.5 Django版本> = 2.1 如果你的环境不满足需要先进行升级,在相关环境及依赖配置好后后,只需要在settings.py文件中的INSTALLED_APPS中添加'bootstrap3...class HomePageView(TemplateView): template_name = "app/index.html" 接着去将该页面添加至urls.py中 from django.conf.urls
这篇通过Django源码中的cached_property来看下Python中一个很重要的概念——Descriptor(描述器)的使用。想必通过实际代码来看能让人对其用法更有体会。...下面来看下这个Descriptor在Django中是怎么被使用的。...Django中的cached_property 在Django项目的utils/functional.py中这么一个类:cached_property。从名字上可以看出,它的作用是属性缓存。...cached_property代码 理解了上面的例子在来看Django中的这个cached_property代码就容易多了。...这里需要注意dict这个东西,在调用实例的属性时会先去这里面找,如果没找到就会去父类的dict中查找,如果还是没有,则会调用定义的属性,如果这个属性被描述器拦截了,则这个属性的行为就会被重写。
.x中,url的路由表示用path和re_path代替,模块的导入由django1.x版本的from django.conf.urls import url,include变成现在的Django2.x中的...当Django响应一个请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项 view:当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个...HttpRequest对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入 name:为你的URL取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。...view:使用正则表达式 name:使用正则表达式 说明 如果匹配的规则比较复杂建议使用re_path() 3、在根级路由中指定子路由 urlpatterns 一个path对象的列表...path() 对象的作用 在主路由中主要是引入其他子路由模块 基本使用 from django.urls <span class="hljs-keyword
正则表达式的创建 在 JavaScript 中,可以通过两种方式创建一个正则表达式。...方式一:通过调用RegExp对象的构造函数创建 var regexp = new RegExp(/123/); console.log(regexp); 方式二:利用字面量创建 正则表达式 var...rg = /123/; 2.测试正则表达式 test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false,其参数是测试字符串。...var rg = /123/; console.log(rg.test(123));//匹配字符中是否出现123 出现结果为true console.log(rg.test('abc'));//匹配字符中是否出现
在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...如果第二个模式匹配,page() 将使用正则表达式捕获的num 值。 性能 urlpatterns 中的每个正则表达式在第一次访问它们时被编译。这使得系统相当快。...在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中:使用url 模板标签。...在Python 代码中:使用django.core.urlresolvers.reverse() 函数。...在更高层的与处理Django 模型实例相关的代码中:使用get_absolute_url() 方法。
Django 依次匹配该列表中的每个URL模式,在遇到第一个与请求的URL相匹配的模式时停下来。...在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...如果第二个模式匹配,page() 将使用正则表达式捕获的num 值。 性能¶ urlpatterns 中的每个正则表达式在第一次访问它们时被编译。这使得系统相当快。...在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中:使用url 模板标签。...在更高层的与处理Django 模型实例相关的代码中:使用get_absolute_url() 方法。
它是django.conf.urls.url()实例的一个列表。 依次匹配每个URL模式,在与请求的URL相匹配的第一个模式停下来。...转换器 3.1 path转换器 在django2.0 以上的版本中,默认使用的是path转换器: from django.urls import path from . import views urlpatterns...在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中:使用url 模板标签。...在Python 代码中:使用from django.urls import reverse()函数 urls.py: from django.conf.urls import url from . import
是因为在'settings.py'文件中配置了'ROOT_URLCONF'为'urls.py',所有django会去'urls.py'中寻找。...2.写正则表达式都推荐使用原生字符串,也就是以'r'开头的字符串。 3.在正则表达式中定义变量,需要使用圆括号括起来。在这个参数是有名字的,那么需要使用'?...,特别是一些比较复杂的正则表达式,今天写的明天可能就不记得了),除非是url中确实是需要使用正则表达式来解决才使用're_path'。...比如参数是'python+django',那么传到视图函数的时候变成'['python','django']' 以后在使用reverse反转的时候,限制传递“文章分类”的参数应该是一个列表,并且将这个列表变成...5.将定义好的转换器,使用'django.urls.converters.register_converter'注册到django中。
在urls.py文件中有一个urlpatterns变量,以后django就会从这个变量中读取所有的匹配规则。...那么如何在django中实现这种需求呢。这时候我们可以在path函数中,使用尖括号的形式来定义一个参数。比如我现在想要获取一本书籍的详细信息,那么应该在url中指定这个参数。...因此django给我们提供了一个方法,可以在app内部包含自己的url匹配规则,而在项目的urls.py中再统一包含这个app的urls。使用这个技术需要借助include函数。...re_path函数: 有时候我们在写url匹配的时候,想要写使用正则表达式来实现一些复杂的需求,那么这时候我们可以使用re_path来实现。...在写正则表达式中是推荐使用原生字符串的,这样可以避免在python这一层面进行转义。
不知大家是否有过类似的经历,比如说for循环渲染数组或者对象中的数据,渲染完成后,给数组或者对象添加、修改、删除数据后却没有在页面中渲染出来。...本篇就是来解释说明修改数组和对象数据视图立马更新的问题,要掌握各种情况和set、delete方法的使用 数组中数据渲染后的修改、新增、删除问题 使用 或者直接改引用,让数组指向另一个内存空间,如下 或者用Vue的set方法去新增、修改数据,用Vue的delete方法去删除数据 也可以用...综上所述,数组要能直接触发视图更新在页面上渲染出来的方法 1.利用数组的api方法 2.改变数组指向的内存地址(改引用) 3.利用Vue的set、delete方法操作数组(推荐) 对象中数据渲染后的修改...$delete(vm.userInfo, "age") 经过我的测试这都是可以的,根据需要使用 综上所述 虽然修改数组、对象中的数据都可以直接改变引用地址实现,但是不推荐。
前言 当你学习不熟悉的新东西的时候,一旦发现某样东西有效,那么你就会坚持使用它而放弃探索更多的可能性。在Python中,那样东西就是列表。 使用列表的感觉就像是在一直重复你最喜欢的特别动作。...然后Python不止列表,还有元组和集合。让我们回顾一下这些特殊的数据类型,并且说明在什么情境下应该使用它们而不是列表。 ? 元组 元组是不变的有序项目序列。最后一个词——不可变——是这里的秘密武器。...使用元组的语法几乎与列表相同,只是使用了括号而不是方括号。此外,还可以将列表转换为元组。...一开始可能会觉得不方便;但是,每次使用元组而不是列表时,您都会做两件事。 编写更加语义化和安全的代码。当您将变量定义为元组时,您是在告诉自己和代码的任何其他查看者:“这不会改变”。...遍历元组将比遍历列表更快。元组比列表的内存效率更高。由于元组中的项数没有变化,因此它的内存占用更简洁。 如果您的列表的大小没有被修改,或者其目的仅仅是用于迭代,那么尝试用元组替换它。 ?
Django 将请求的 URL 从上至下依次匹配列表中的正则表达式,直到匹配到一个为止。 需要注意的是,这些正则表达式不会匹配 GET 和 POST 参数,以及域名。...在本教程中,我们并不打算使用 Django 这一特性。 url() 参数: name 命名你的 URL ,让你在 Django 的其他地方明确地引用它,特别是在模板中。...Django 将会在那寻找模板。 Django 的 TEMPLATE_LOADERS 配置中包含一个知道如何从各种来源导入模板的可调用的方法列表。...当 Django 在 URLconf 中不能找到能匹配的正则表达式时 404 视图也将被调用。...不过,既然你在 polls.urls 模块中的 url() 函数中定义了 命名参数,那么就可以在 url 配置中使用 {% url %} 模板标记来移除特定的 URL 路径依赖: <a href
/articles/2005/03/ 请求将匹配列表中的第三个模式。 ...在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中:使用url 模板标签。...在Python 代码中:使用django.core.urlresolvers.reverse()函数。...在更高层的与处理Django 模型实例相关的代码中:使用get_absolute_url() 方法。
Django拿着用户请求的url地址,在urls.py文件中对urlpatterns列表中的每一项条目从头开始进行逐一对比, 一旦遇到匹配项,立即执行该条目映射的视图函数或二级路由,其后的条目将不再继续匹配...如果你想深入研究正则表达式,可以读一些相关的书籍或专论,但是在Django的实践中,你不需要多高深的正则表达式知识。...开发一套动态的路由系统 在urls.py里定义分类正则表达式 from django.conf.urls import patterns, include, url from django.contrib...,在模板中使用url标签,在视图中使用reverse函数,根据正则表达式动态生成地址,减轻后期维护成本。...模板中超链接步骤 1)在项目urls.py中为include定义namespace属性。
这里写代码片 正则表达式与命名组 首先在app1模块中通过正则表达式分别动态的匹配年,年月,年月日类型的URL。...app1模块的urls.py文件 接下来在新建的app1模块下的urls.py中写动态正则表达式: # app1.urls.py from django.conf.urls import url from...因为当加上圆括号的时候,django就能从URL中捕获这一个值并传递给相对应的views函数,当然使用的是位置传参。...[1-9]|[1-2][0-9]|3[0-1])/$', views.pattern3), ] 最后值得注意的是在views函数中的参数是可以使用默认参数的,以及可以使用正则表达式进行不捕获参数的设置(...URL模式与命名空间 在url patterns上里面的每一个url函数就是一个URL模式,在django中使用类django.core.urlresolvers.RegexURLPattern来表示
为路由设置变量,: 之前代表变量类型,: 之后代表变量名;如果没有指定变量类型,默认为字符串类型 然后,在 App 下的 view.py 文件中编写路由定义的视图函数 视图函数中包含 4 个参数...额外变量 除了在路由地址中设置变量外,还可以为 path 函数追加一个变量 需要注意的是,变量必须以字典的形式表示,参数值不限制数据格式,可以是实体对象,也可以是基本数据类型 # urls.py(App...with_extra_params() 中来使用这个参数 # views.py(App) def with_extra_params(request, extra_param): """...正则表达式 正则表达式可以限制路由地址中的变量取值范围,对路由变量进行截取与判断,使得路由匹配更加地精确合理 路由正则表达式使用函数 re_path 来定义,以小括号 ( ) 为一个部分单位,每个小括号以...路由名称 在 Django 中,路由名称是对一个路由进行命名,作用是在视图、模块里使用路由命名生成路由地址,在后期路由地址发生变更的时候,方便维护和更新 路由定义列表中,可以为函数 path() 和 re_path
'django.contrib.staticfiles', 'app01.apps.App01Config', #类似这样 ] 设计url 在project/urls.py中 from app01...在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...在URL控制器(project/urls.py)中,给匹配规则起个别名可以解决这个问题,这就叫做反向解析 在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中...在Python 代码中:使用django.core.urlresolvers.reverse() 函数。...在更高层的与处理Django 模型实例相关的代码中:使用get_absolute_url() 方法。
在 Django 中使用视图,一般需要进行两步操作: 定义视图 配置URL 运行环境 Python 3.9 Django 3.1.2 Django视图 基于函数的视图 视图函数的必须有一个参数,一般叫...path('book', views.index), ] 在 urlpatterns url匹配列表中可以看见 path('admin/', admin.site.urls) 这行,这是 Django...意思就是当访问 http://127.0.0.1:8000/book 网址时, 截取后为 book , 然后在 urlpatterns 匹配列表中逐一匹配, 当匹配到 book 时符合匹配规则,让我们的...path 不支持正则表达式,如需支持正则需要在 django.urls 导入 re_path 。...Django 的类视图 View 从本质上讲,基于类的视图使您可以使用不同的类实例方法来响应不同的 HTTP 请求方法,而不是使用单个视图函数中的有条件分支代码。
视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf-8 from...包括正则表达式、视图两部分 Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图 注意:只匹配路径部分,即除去域名、参数后的字符串 在test1/urls.py插入booktest...,使主urlconf连接到booktest.urls模块 url(r'^', include('booktest.urls')), 在booktest中的urls.py中添加urlconf from django.conf.urls...编辑views.py文件,在方法中调用模板 from django.http import HttpResponse from django.template import RequestContext...url设置超链接 修改test1/urls.py文件,在include中设置namespace url(r'^admin/', include(admin.site.urls, namespace='booktest