利用EnterpriseWizard的REST接口的非关系型Django数据库后端。
项目描述
- 版本:
- 1.5.4
- 依赖项:
- Python 3.4+, Django>=1.5, djangotoolbox>=1.6.2, requests>=2.2.0 
- 主页:
- 许可协议:
- GNU LGPL (https://gnu.ac.cn/licenses/lgpl.html) 
注意: 版本1.3+将与EnterpriseWizard的anti-sql block兼容。为了实现这一点,移除了正则表达式和大小写不敏感的查询操作。
安装
运行 pip install django-ewiz
将 django_ewiz 添加到 INSTALLED_APPS
INSTALLED_APPS = (
    ...
    'django_ewiz',
    ...
)使用方法
基本使用
在 DATABASES 设置字典中,只需将 django_ewiz 作为 ENGINE 键即可。
'default': {
    'ENGINE': 'django_ewiz',
    'NAME': '',  # The name of the knowlegebase
    'USER': '',  # The name of the user
    'PASSWORD': '',  # The user's password
    'HOST': '',  # EnterpriseWizard's REST base url, generally 'www.example.com/ewws/'. Don't include the protocol string (e.g. 'http://').
    'PORT': '',  # Either 80 or 443 (HTTP or HTTPS requests only)
    'NUM_CONNECTIONS': '', # Default: 1, Allows multiple concurrent connections to be used when retrieving multiple tickets in a query.
},这就完成了!所有执行的数据库操作都将被抽象化,并应该像通常的引擎一样工作(除非你想做的事情与以下选项冲突)。
支持以下查询操作
- iexact 
- icontains 
- in 
- gt 
- gte 
- lt 
- lte 
- istartswith 
- iendswith 
- range 
- year 
- isnull 
以下查询操作将转换为相应的不区分大小写的形式: (版本 1.3+)
- exact 
- contains 
- startswith 
- endswith 
以下查询操作不再受支持: (版本 1.3+)
- regex 
- iregex 
注意:并非所有票据字段都可以通过REST进行更改。将模型选项中的 editable=False 添加以移除数据库错误。
文件上传
django-ewiz支持文件上传 - 但不是直接的方式(直接上传到文件字段不会工作[将在以后进行更多研究以抽象化])
要将字段标记为文件字段,将 help_text='file' 添加为模型字段选项。由于直接修改字段将不起作用,建议添加 editable=False 以避免混淆。
file_field = CharField(help_text='file', editable=False, db_column='attached_files')要上传文件,请使用提供的EwizAttacher类(from django_ewiz import EwizAttacher)并使用以下参数
- settingsDict - 包含ewiz连接设置的DATABASES字典。例如,settings.DATABASES[‘default’] 
- model - 应上传文件的模型实例(模型必须包含一个且仅有一个文件字段)。例如,models.AccountRequest.objects.get(ticket_id = 1) 
- file_reference - 一个Python文件对象。如果文件来自django表单,则通过request.FILES[‘form_field_name’].file获取它 
- file_name - 所需的文件名。如果文件来自django表单,您可以通过request.FILES[‘form_field_name’].name获取其名称 
文件上传示例
forms.py
from django.forms import Form, FileField
class EwizUploadForm(Form):
    uploaded_file = FileField(required=True)models.py
from django.db.models import Model, AutoField, CharField
class AccountRequest(Model):
    ticket_id = AutoField(primary_key=True, db_column='id')
    subject_username = CharField(help_text=':')
    # Use this field only in conjunction with EwizAttacher - do not attempt to directly populate it
    file_field = CharField(help_text='file', editable=False, db_column='attached_files')
    class Meta:
        db_table = u'account_request'
        managed = False
        verbose_name = u'Account Request'views.py
from django.conf import settings
from django.views.generic.edit import FormView
from django_ewiz import EwizAttacher
from .forms import EwizUploadForm
from .models import AccountRequest
class UploadDemoView(FormView):
    template_name = "ewizdemo.html"
    form_class = EwizUploadForm
    def form_valid(self, form):
        # Create a new account request
        ticket = AccountRequest(subject_username=self.request.user.username)
        ticket.save()
        # Grab the file
        file_reference = self.request.FILES['uploaded_file'].file
        # Upload the file
        EwizAttacher(settings_dict=settings.DATABASES['default'], model=ticket, file_reference=file_reference, file_name=self.request.user.username + u'.pdf').attach_file()项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
django-ewiz-1.5.4.tar.gz的散列
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | f785fbb194a98e69ca0eb7c650fe76c7edb687f3529c00aff68efc1eac2bd824 | |
| MD5 | 632d6f6adac5a39be161ef01c0f6ab96 | |
| BLAKE2b-256 | 9cd666aeb4064e46f9b1ef9950ce4025a1f5cd6a62651f2ed5510c7478d47d10 |