Skip to main content

Django开发中一组常用工具。包括表单生成,验证,富文本编辑器,useragent检测等等

Project description

# Django 脚手架

# Change log

* 0.5.x 支持Django 2.x

* 0.4.x 支持Django 1.8 - 1.11

# 表单验证

基于[FormValidation](http://formvalidation.io/)。

## 支持的验证

* [between](http://formvalidation.io/validators/between/)
* [callback](http://formvalidation.io/validators/callback/)
* [choice](http://formvalidation.io/validators/choice/)
* [date](http://formvalidation.io/validators/date/)
* [different](http://formvalidation.io/validators/different/)
* [emailAddress](http://formvalidation.io/validators/emailAddress/)
* [file](http://formvalidation.io/validators/file/) *可自动根据ImageFile,VideoFile设置校验类型*
* [greaterThan](http://formvalidation.io/validators/greaterThan/)
* [id](http://formvalidation.io/validators/id/)
* [identical](http://formvalidation.io/validators/identical/)
* [integer](http://formvalidation.io/validators/integer/)
* [lessThan](http://formvalidation.io/validators/lessThan/)
* [notEmpty](http://formvalidation.io/validators/notEmpty/)
* [numeric](http://formvalidation.io/validators/numeric/)
* [phone](http://formvalidation.io/validators/phone/)
* [regexp](http://formvalidation.io/validators/regexp/)
* [remote](http://formvalidation.io/validators/remote/)
* [stringLength)(http://formvalidation.io/validators/stringLength/)
* [uri](http://formvalidation.io/validators/uri/)
* [zipCode](http://formvalidation.io/validators/zipCode/)

## 用法

* 激活scaffold_toolkit.formvalidator

```#!python
INSTALLED_APPS=(
...
scaffold_toolkit.formvalidator,
...
)
```

* 按照常规定义Django的model和form。定义时的验证规则,会自动生成客户端验证脚本。

* 验证脚本

在需要验证的模板上,根据情况,添加如下代码存根。

```#!html
{% load formvalidator %}
<link rel="stylesheet" href="{% formvalidator_css_url %}">

<script src="{% formvalidator_javascript_url %}">
<script src="{% formvalidator_language_url 'zh_CN' %}"> <!-- if needed -->
<script>
{% formvalidator 'formSelector' form %}
</script>
```

## 校验类

formvalidator已经原生支持Django的校验,比如不为空(notEmpty),字符串长度(stringLength)等等。只需要按照Django的常规方法定义相关的字段即可。

对于部分特殊的校验,如phone、zip等,可以在form中设置校验类。在scaffold_toolkit.formvalidator.forms.validators中提供了一组自定义校验类:

* IdValidator
* ZipCodeValidator
* IdenticalValidator
* DifferentValidator
* RemoteValidator
* ChoicesValidator
* CallBackValidator
* PhoneValidator
* EmailAddressValidator
* UriValidator
* FileValidator
* ImageFileValidator
* VideoFileValidator
* AudioFileValidator


# zui表单工具

此模块几乎所有代码都来自于 django-bootstrap3。只是将基础框架替换为zui。表签名亦替换为zui。

文档请参阅:http://django-bootstrap3.readthedocs.org/en/latest/

## 用法

* 激活scaffold_toolkit.zui

```#!python
INSTALLED_APPS=(
...
scaffold_toolkit.zui,
...
)
```

## 渲染

```#!html
{% load zui %}
<form ...>
...
{% zui_form form %}
...
</form>
```

# Middleware

### scaffold_toolkit.middleware.devicetemplate.TemplateForDeviceMiddleware
如果采用移动设备访问,则自动修改模板修改路径改为: [mobile/template_name, template_name]。亦即: 可以为移动设备设置专属的模板,而代码中无需特殊说明

### scaffold_toolkit.middleware.useragentdetecet.UserAgentDetectMiddleware
为request增加ua属性。ua.is_mobile指示是否移动设备,ua.os指示操作系统

### scaffold_toolkit.middleware.exceptionlogging.ExceptionLoggingMiddleware
错误记录入日志文件

# mailgun

# widgets

## scaffold_tool.forms.datetimepicker.DateTimePicker,scaffold_tool.forms.datetimepicker.TimePicker
日期时间,时间选择控件

## scaffold_toolkit.kindeditor.KindEditor
富文本编辑器

# 视图

scaffold_toolkit.views.py

## AjaxFormView,AjaxForm
Ajax处理相关的视图

## kindeditor_upload_file
文件上传视图

# 其他工具

## scaffold_toolkit.modelemailbackend.ModelEmailBackend
以Email作为用户名验证

## 自动加载admin模块

```#!python
from scaffold_toolkit.bootstrap import bootstrap,discover_admin_urls
bootstrap()

urls+=discover_admin_urls()
```

# 更新记录

## 2015-5-20

* 更新zui 到1.3.1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-scaffold-toolkit-0.5.3.tar.gz (1.4 MB view details)

Uploaded Source

File details

Details for the file django-scaffold-toolkit-0.5.3.tar.gz.

File metadata

File hashes

Hashes for django-scaffold-toolkit-0.5.3.tar.gz
Algorithm Hash digest
SHA256 6ed665054438076ba813ece271fffcc4026f4ac8e0963870de388c3ef1ab4b16
MD5 36cc2c2897c51d24abea759415a1d5ed
BLAKE2b-256 60b32bb6a4411e6de405ad4a4d3a3a1a250488f69e36d62feda9a56f28c01f15

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page