このパッケージの目的は、djangoフレームワークを使用するときに必要な定型文を減らすことです。 同じことを何度も書く必要をなくすために、コードを短くして表現力豊かにします。
したがって、パッケージをインストールします。
pip install handy
そして始めましょう。 便利なものは何ですか?
1.
HttpResponse
および
render_to_response()
回避
デコレータ
@render_to()
:
# 'app_name/foo.html', # app_name - @render_to() def foo(request): return { 'bar': Bar.objects.all() # , HTTP , 'STATUS': 410, 'CONTENT_TYPE': 'text/plain' }
2.数行のJSONビュー:
@render_to_json() def posts_by_tag(request, tag=None): posts = Post.object.values().filter(tag=tag) return list(posts)
3.さらに複雑な非同期リクエストを処理するためのさらに高いレベルのラッパー:
@ajax @ajax.login_required @ajax.catch(Post.DoesNotExist) def enable_post(request): post = Post.objects.get(pk=request.GET['id']) if post.author != request.user: # {"success": false, "error": "permission_denied"} raise ajax.error('permission_denied') post.enabled = True post.save() # {"success": true, "data": null}
4.テンプレートによって生成されたレターを1行で送信します。
render_to_email(article.author.email, 'approved.html', {'article': article})
レターテンプレートには、件名とその他の見出しを含めることができます。
5.モデルフィールドのコレクションと、対応するフォームフィールドおよびウィジェット:
DAYS = zip(range(7), 'Sun Mon Tue Wed Thu Fri Sat'.split()) class Company(models.Model): phones = StringArrayField('Phone numbers', blank=True, default='{}') workdays = IntegerArrayField('Work days', choices=DAYS) company = Company(phones=['234-5016', '516-2314'], workdays=[1,2,3,4]) company.save()
フォームでは、
phones
はコンマで区切られたテキストボックスに表示され、
workdays
はいくつかのチェックボックスの形で表示されます。
任意のデータや他のフィールドを保存するための
JSONField
もあります。
そしてまた:
-html-answersから不要なスペースを切り取るミドルウェア、
-一般的なマスタースレーブルーター、
-ロギングを簡素化する小さなラッパー、
-およびテキストとデバッグユーティリティのカップル。
あなたの経験を共有してください
それに応えて、私はあなたの人生を簡素化する方法を聞いたり、もっとよく見たいです。 解決策がない場合、開発者の人生で遭遇する問題や単純に繰り返される作業パターンも興味深いものです。
リンク: Github 、 PyPi 、 Djangoパッケージおよび英語のドキュメント 。