构建Django应用程序

时间:2017-04-02 21:20:29

标签: django database-design web-applications web-application-design

我目前正在设计一个供研究人员用来进行评审的网络应用程序。在此应用程序中,有两组用户 - 参与者和管理员。

只有管理员才能开始审核,并且可以指定任何用户或管理员作为管理员或筛选者参与审核。每次审核的一般工作流程将是:

  1. 搜索医疗数据库并导入数千个参考文献。
  2. 基于标题的屏幕参考(评论者/管理员的数量筛选可以是1或多个)。每位评审员都会筛选所有参考文献。将每个参考标记为包含或排除。
  3. 屏幕包含基于摘要的参考。与上述相同。
  4. 以PDF格式存储全文并存储包含的参考文献。
  5. 屏幕包含基于全文的参考文献。与上述相同。
  6. 创建自定义表单。
  7. 从包含的参考文献中提取数据。
  8. 导出数据
  9. 在整个评估过程中,将对所有参考文献进行学习。我们还需要在整个审核过程中进行全面的记录

    我的问题是,我怎样才能最好地将这些部分拆分成django应用程序,以及如何构建所需的数据库。

    暂时,我已经考虑过拥有这些数据库:

    • 用户。存储有关筛选者和审阅者的信息,以及哪些项目是否为管理者和管理员。
    • 项目。存储每个项目的基本信息,包括数据提取表单。与引用表的一对多关系。
    • 参考。存储有关每个参考的信息,包括包含状态和数据提取。

    我不知道如何处理日志记录。我怎么能这样做?

    这是一个合理的分裂,如果是这样,我应该如何将步骤分成应用程序。

1 个答案:

答案 0 :(得分:3)

关于Django的最好的事情是使用apps创建的manage.py startapp <myapp>。应用程序可以很好地控制代码的模块化。您在模块化代码方面处于正确的轨道上。

关于你的表用户,项目和参考听起来合理。

如果我是你,我会将应用程序构建成类似的东西。

apps/ 
    userprofile/ (users table )
    project/ (projects and references tables)
    activity/ (activity and notifications tables)

关于记录 用户编辑,项目编辑或删除等每项活动都可以通过post_或pre_信号https://docs.djangoproject.com/en/1.10/topics/signals/捕获。用户可以创建活动,并根据活动将单个活动作为通知发布给多个用户,即单个活动将触发每个通知给参与活动的多个用户。

在每个应用中

我更喜欢在每个应用程序中使用以下结构:

userprofile/         
    __init__
    views.py
    tests.py
    signals.py # write the post_save pre_save post_delete pre_delete logics here
    managers.py  # take full leverage of managers, and custom querysets
    forms.py
    models.py
    urls.py
    admin.py
    tasks.py # for celery or tasks which will be used by queuing systems
    apps.py 

关于版本数据

从这里https://djangopackages.org/grids/g/model-audit/

尝试满足您要求的那个