从Django模型实例获取类名、应用名等元信息
在Django 项目中,有时需要通过模型实例获取其对应的类名、应用名等元信息。这些信息可以通过模型实例的_meta 字段来获取到。
在Django 项目中,有时需要通过模型实例获取其对应的类名、应用名等元信息。这些信息可以通过模型实例的_meta 字段来获取到。
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"
}
]
},
...
]
}
外网下载
yum install --downloadonly --downloaddir=<directory> <package-name>
内网安装
rpm -ivhU * --nodeps --force
外网下载
pip download -d <directory> <package-name>
内网安装
pip install --no-index --find-links=<your_offline_packages_directory> <package_name >
Python的参数传递,既非按值传递(call-by-value),也非按引用传递(call-by-reference),而是按对象引用传递(call-by-object-reference)或者说按赋值传递(call-by-assignment)。
Python中的赋值可理解为将“变量名”与对象进行绑定。
在Python中, list, dict, set 等类型的对象是可变对象,而 str, int, tuple等类型的对象是不可变对象。
Python的numpy和scipy包都提供了线性插值的功能,尤其是后者,还支持外插。
numpy.interp内插例子:
>>> xp = [1, 2, 3]
>>> fp = [3, 2, 0]
>>> np.interp(2.5, xp, fp)
1.0
>>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp)
array([3. , 3. , 2.5 , 0.56, 0. ])
scipy.interpolate.interp1d内插和外插例子:
from scipy.interpolate import interp1d
>>> x = [1, 2, 3]
>>> y = [3, 2, 0]
>>> f = interp1d(x,y,fill_value=(3,0),bounds_error=False) # 线性内插
>>> f([0, 1, 1.5, 2.72, 3.14])
array([3. , 3. , 2.5 , 0.56, 0. ])
>>> fe = interp1d(x,y, fill_value='extrapolate') # 线性内插+外插
>>> fe([0, 1, 1.5, 2.72, 3.14])
array([ 4. , 3. , 2.5 , 0.56, -0.28])