-
Notifications
You must be signed in to change notification settings - Fork 3
biohub.core
Xie Jingyi edited this page Jul 17, 2017
·
1 revision
biohub.core
包含以下内容:自定义 manage.py
命令、全局 urlpatterns
注册器。
为了更好的团队开发体验,biohub
新增/覆盖了若干 manage.py
中的命令。
startapp
命令有两个主要的改动:
- 当不指定输出目录时,原命令默认在当前目录(
$PWD
)下创建 app,新命令则默认在~/biohub/
下创建(即与core/
、main/
同级) - 新命令覆盖了默认的 app 模板(可在
~/biohub/core/app_template/
中找到)。
codestyle
命令用于检查整个项目中的 python 代码是否符合 PEP8 规范。
本次项目使用 pytest
作为测试框架,测试文件需放置于 ~/tests/
中,运行 manage.py test
可执行其中所有的测试样例。
manage.py test
有若干参数:
-
--recreate
:默认情况下,测试完成后django
并不销毁测试数据库。若在开发过程中对表结构作了修改,需加上此参数以重新构建测试数据库。 - 若干其他可选参数:用于指定本次测试的测试样例,可以是测试样例的目录或文件。如
manage.py test accounts/
会执行~/tests/accounts/
下的所有测试样例。
考虑到其他开发者在开发插件的过程中会添加自定义的路由,为了避免他们直接修改 biohub
中的文件,biohub
提供了自主注册路由的机制,希望组员在开发的过程中也使用这样的机制。
biohub
默认存在两个根 URLConf:
-
r'^/api'
,namespace='api'
:RESTful API 的根路由 -
r'^'
,namespace='default'
:默认的根路由
在 biohub.core.routes
中定义了注册的接口:register_api
和 register_default
,它们有着相同的函数签名:
-
prefix
为此模块的公共 URL 前缀 -
urlpatterns
为被注册的路由列表 -
namespace
为可选的命名空间,用于路由反查
路由需被定义在每个 urls.py
中,biohub.core
已开启了对此文件的 Auto Discovery。
一个例子(biohub.accounts.urls
):
from rest_framework.routers import DefaultRouter
from biohub.core.routes import register_api, url
from . import views
router = DefaultRouter()
router.register(r'users', views.UserViewSet)
register_api(r'^', [
url(r'^users/register/$', views.register, name='register'),
url(r'^users/login/$', views.login, name='login'),
url(r'^users/logout/$', views.logout, name='logout'),
url(r'^users/change_password/$',
views.change_password, name='change-password')
] + router.urls, 'accounts')
在这个例子中:
reverse('api:accounts:register') == '/api/users/register/'
reverse('api:accounts:user-list') == '/api/users/'