一个简单的django应用程序,用于与fieldbook.com API交互。

django-fieldbook的Python项目详细描述


django fieldbook是一个可重用的django应用程序,用于与Fieldbookapi交互。 Fieldbook是创建自定义信息工具的最快和最简单的方法。 开始使用它就像电子表格一样简单,但是它提供了 数据库驱动的业务应用程序。团队使用它来跟踪项目和客户, 实现数据收集工作流,并创建自定义内容管理系统。

概述

Django Fieldbook与Django 1.8/1.9/1.10/1.11一起工作。 它基于一个基本的python 3客户机fieldbook-py

快速启动

  • 在python环境中设置django fieldbook应用程序:

    $ pip install django-fieldbook
    
  • 迁移Fieldbook应用程序以创建用户模型:

    $ migrate fieldbook
    
  • 将“fieldbook”添加到已安装的应用程序设置中,如下所示:

    INSTALLED_APPS = (
        ...,
        'fieldbook',
    )
    
  • 使用不同类型的视图(在view.py文件中或如果您希望在nameview.py文件中)编写视图:

    • A view to get the list of sheet names on the book extending the FieldbookSheetIndexView:
    class IndexView(FieldbookSheetIndexView):
        """Index class based view.
    
        Return the list of sheets associated with the book and render it
        into a bootstrap list-group.
        """
        template_name = "index.html"
    
        def get_context_data(self, **kwargs):
            context = super(IndexView, self).get_context_data(**kwargs)
            return context
    
        @method_decorator(login_required)
        def dispatch(self, request, *args, **kwargs):
            return super(IndexView, self).dispatch(request, *args, **kwargs)
    
    • 获取所选工作表上记录列表的视图扩展FieldBooksheetTableView:
    class SheetTableView(FieldbookSheetTableView):
        """Sheet class based view.
    
        Returns the array of records (object) for the sheet and render it
        into a jquery datatable.
        """
        template_name = "index.html"
    
        def get_context_data(self, **kwargs):
            context = super(SheetTableView, self).get_context_data(**kwargs)
            return context
    
    • 在扩展FieldBooksheetEntryView的工作表中获取特定记录的视图:
    class SheetEntryView(FieldbookSheetEntryView):
        """Return or remove a specific record in a sheet.
    
        If is present the url pramater 'to_delete', the current
        entry is removed.
        """
        template_name = "index.html"
    
        def get_context_data(self, **kwargs):
            """Update view context."""
            context = super(SheetEntryView, self).get_context_data(**kwargs)
    
            entry_to_delete = kwargs.get("to_delete", False)
            if entry_to_delete:
                context.update({
                    'sheet_entry': self.remove_sheet_entry(self.sheet_name, self.record_id),
                })
            else:
                context.update({
                    'sheet_entry': self.get_sheet_entry(self.sheet_name, self.record_id),
                })
            return context
    
        @method_decorator(login_required)
        def dispatch(self, request, *args, **kwargs):
            return super(SheetEntryView, self).dispatch(request, *args, **kwargs)
    
    • 然后需要将视图映射到url.py文件中的url:
    url('^$', IndexView.as_view(), name="index"),
    # list sheets
    url(r'^sheet-table/sheet_name=(?P<sheet_name>[-\w]+)/$', SheetTableView.as_view(), name='sheet_table'),
    # single sheet by id
    url(r'^sheet-entry-(?P<record_id>\w+)/sheet_name=(?P<sheet_name>[-\w]+)/$', SheetEntryView.as_view(),
        name='sheet_entry'),
    url(r'^sheet-entry-(?P<record_id>\w+)/sheet_name=(?P<sheet_name>[-\w]+)/delete/$', SheetEntryView.as_view(),
        {'to_delete': True}, name='sheet_entry_delete'),
    
  • 如果需要,可以使用基本fieldbookuser模型,或者扩展它来定义一个简单的模型,如以下示例:

    from fieldbook.models import FieldBookUser
    class CustomFieldBookUser(FieldBookUser):
        nick = models.CharField(max_length=100)
    
  • 将登录、注销和注册映射到url.py:

    url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html'}, name='login'),
    url(r'^accounts/logout/$', auth_views.logout, {'template_name': 'logged_out.html'}, name='logout'),
    url(r'^fieldbook/', include('fieldbook.urls')),
    

注释

请随意使用叉子并发送拉动请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从tester类访问/更改ArrayList?   java如何在Android中以编程方式更改菜单标题   spring boot在Kafka Java中为同一主题创建多个消费者组   java JVM字节码表示法,注释语法。调用动力学   java活动在旋转后泄漏了窗口PopupWindow   java允许Nashorn运行用户代码   Java Joda Time实现一个日期范围迭代器   当字符串长度为奇数时使用递归打印字符串的java基本情况   java无法从JSONArray获取JSONObject   java有没有一种方法可以使用单个示例文件进行所有测试?   java My bufferedReader读取整个文件,而不仅仅是一行。为什么?   当已有用户输入时,java变量为null   java如何将正则表达式与阿拉伯语文本一起使用   java Selenium WebDriver“单击”和JavascriptExecutor单击之间有什么区别   java在运行代码时,排序方法会在第二个数组应该按升序或降序排序时打印相同的精确数组号   java如何在HashMap中添加多个具有相同键的相同类型的对象   java有人知道为什么菜单栏在使用系统gtk主题时会显示白色文本吗?   在tomcat中用java方法访问JavaScript文件