検索

ホームページ  >  に質問  >  本文

python - django开发中纠结于视图函数与类通用视图

现阶段django开发是用视图函数多呢?还是类通用视图?

看到有人在segmentfault中陈述:视图函数拓展性就没有这么灵活。类通用视图可以继承,可用使用装饰器等好处。

不过我做了一个单表的CURD(增删改查)之后,发现一个问题是。现实开发中有很多复杂的功能是多表操作的,类通用视图处理这些复杂的逻辑时就显得有些疲软了.....

各们Django使用者,有什么好建议,或者是我还没对类通用视图研究不透彻?请大家指点一下....

阿神阿神2769日前461

全員に返信(4)返信します

  • PHP中文网

    PHP中文网2017-04-18 09:52:05

    cbv (クラスベースビュー) を使用して開発できる場合は、fbv (関数ベースビュー) を使用しないようにしてください。 Django の開発組織も、全員が開発に cbv を使用することを推奨しています。 cbv を使用することには多くの利点があります。最も明白な利点は、基本的に、数行のコードを記述する必要がなく、各ビューが何であるかを理解するだけで開発効率が向上することです。追加のものがあり、ミックスイン拡張機能を自分で作成する必要があります。個人的には開発効率が2倍以上向上したと感じています。したがって、欠点について言えば (もちろん、Django のソース コードを読まなければならないということは利点であるべきだと思います)、Django に付属するすべてのビューの機能と、Django の各メソッドが何を意味するのかを理解する必要があるということです。ビューがやってます。ビューの機能を理解することによってのみ、適切な継承を実行し、いくつかの複雑な操作で適切なミックスインを記述することができます。 cbv での開発に慣れてくると、Django view のソース コードにもっと慣れると思います。

    cbv プロジェクトの学習と開発を支援する Web サイトをお勧めします: ccbv。 cbv と Django ソース コードを組み合わせて学習すると、非常に明確になります。

    最後に、API サービスに使用するために cbv を拡張したライブラリを追加します。いくつかの複雑な関数を完成させるミックスインの作成方法を参照してください。もちろん、DSS を使用してデータ インターフェイスを迅速に開発することも歓迎します (広告はありません。真剣に考えてください):

    django シンプルシリアライザー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:52:05

    何を聞きたいのかわかりません。単一テーブルか複数テーブルかに関係なく、それらはすべてモデル レベルですが、ビュー関数とビュー クラスの間には何か制約がありますか?いいえ

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:52:05

    クラス ビューは一部のデータを共有できますが、通常のビュー関数を使用するにはさらに多くのコードを記述する必要があります。実際、ビューの種類に関係なく、複数テーブルの関連付け操作を実行できますが、RESTful インターフェイスにはクラス ビューが一般的に使用されます。

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 09:52:05

    大規模なプロジェクトにはクラス汎用ビューを使用してみてください

    返事
    0
  • キャンセル返事