Q-Logo 我的学习笔记分享

Entries for category "coding"

在Wagtail网站中提供 RESTful API 服务

Wagtail 是一个基于Django 的内容管理系统(CMS)。它提供了友好的管理页面,可以方便地管理各种内容。它还基于Django REST Framwork 提供了专用的Wagtail API 模块(wagtail.api.v2 ),可以很方便地将原始内容以 JSON API 的方式开放给客户端使用。使用Wagtail API,只需要经过简单配置,就可以提供开放的API,非常适合用于开发前后端分离的项目。API 返回的响应示例如下:

{
"meta": {
"total_count": 10
},
"items": [
{
"id": 1,
"meta": {
"type": "blog.BlogPage",
"detail_url": "http://api.example.com/api/v2/pages/1/",
"html_url": "http://www.example.com/blog/my-blog-post/",
"slug": "my-blog-post",
"first_published_at": "2016-08-30T16:52:00Z"
},
"title": "Test blog post",
"published_date": "2016-08-30",
"authors": [
{
"id": 1,
"meta": {
"type": "blog.BlogPageAuthor",
},
"name": "Karl Hobley"
}
]
},

...
]
}

理解Python的参数传递、变量赋值及可变对象和不可变对象

Python的参数传递,既非按值传递(call-by-value),也非按引用传递(call-by-reference),而是按对象引用传递(call-by-object-reference)或者说按赋值传递(call-by-assignment)。

Python中的赋值可理解为将“变量名”与对象进行绑定。

  • “变量名”并不是对象本身,只是通过赋值与对象进行了绑定,赋值完成后,就可以通过“变量名”来引用对象。
  • 每个“变量名”到对象的绑定有其作用域。

在Python中, list, dict, set 等类型的对象是可变对象,而 str, int, tuple等类型的对象是不可变对象。

  • 对于可变对象,可以通过一些特定操作,“就地”改变其内容,内容改变后,所有引用该可变对象的变量,都会看到此变化
  • 对于不可变对象,任何操作都不能“就地”改变其内容,而只能将内容进行变换生成新的内容,返回新的对象

本地预览@vue/cli构建的前端项目dist目录中的文件

vue构建的dist 目录需要启动一个 HTTP 服务器来访问 ,以 file:// 协议直接打开 dist/index.html 是不会工作的。在本地预览生产环境构建最简单的方式就是使用一个 Node.js 静态文件服务器,例如serve或http-server。另外,如果在构建前,已经将 publicPath 配置为了一个相对的值,那么构建后也是可以直接双击index.html打开文件进行本地预览的。

Python 3中的除法运算和取余运算

Python 3中的除法运算符有两种:/和//,分别比表示浮点除和“地板”除。

Python 3中的取余(或取模)运算符为%。a%b表示a除以b得到的余数,余数符号与除数b相同。如果a或b为浮点数,那么结果也为浮点数。

Python 3中“地板”除运算得到的商,取余运算得到的余数,与除数和被除数之间满足如下关系:

商*除数+余数=被除数