【Python】Webフレームワーク Djangoスレ Part2

1nobodyさん2011/12/15(木) 23:47:02.03ID:???
LL言語「Python」で実装されたWebフレームワーク Django
Web開発する上で必要となる機能がそろっており、
管理サイト画面を自動作成できるなどの特色を持ちます。

前スレ
【Python】Webフレームワーク Djangoスレ Part1
http://kohada.2ch.net/test/read.cgi/php/1156612854/

本家サイト
http://www.djangoproject.com/

日本語ユーザ会「Djangoと日本の仲間たち」
http://www.djangoproject.jp/

日本語解説サイト
ttp://ymasuda.jp/python/django/index.html

解説本(英語) 「Pro Django:」2006年10月30日出版予定
ttp://www.amazon.co.jp/gp/product/1590597257/

あなたがDjangoを利用すべき10の理由(和訳)
ttp://www.everes.net/2006/jan/30/3042306a305fdjango3092522975283059304d10306e74067531/

IT Pro記事
ttp://itpro.nikkeibp.co.jp/article/NEWS/20060410/234868/

IBM developerWork記事
ttp://www-06.ibm.com/jp/developerworks/linux/060802/j_l-django.shtml

739nobodyさん2019/07/08(月) 17:03:34.05ID:???
>>736
Rails標準ではないがGemに追加すると管理サイト作ってくれるのあるぞ

740nobodyさん2019/07/08(月) 19:42:55.91ID:???
>>739
ミドルウェアか
Railsは中小企業とかベンチャーがよく使ってるから、サービス売るならRailsで作ったほうがいいんだよな
まぁ、Rubyの人気落ちてるからこれからどうなるかわからんけど

741nobodyさん2019/07/15(月) 09:26:36.73ID:oAXghJ86
Railsはプロジェクトが拡大していくと途端に破綻するので、
プロトタイピング用途以外に使うのは止めたほうが良い。

742神田けいた2019/07/17(水) 19:58:12.06ID:???
せjjy¥

743nobodyさん2019/07/30(火) 15:43:20.79ID:???

744nobodyさん2019/08/16(金) 20:06:14.60ID:???
サーバー知識皆無で、レンサバにデプロイしたいので
参考書教えて下さい。

745nobodyさん2019/08/16(金) 22:42:17.67ID:???
公式のドキュメントに手順が書いてある

746nobodyさん2019/08/16(金) 23:37:34.86ID:???
定額で動かすとなるとどのレンサバが安い?
やっぱさくらのバーチャル?

747nobodyさん2019/08/17(土) 11:23:01.24ID:49imtk3O
馬鹿には無理

748nobodyさん2019/08/18(日) 02:13:35.68ID:???
>>746
さくらのVPSでいいんじゃないか
あそこより安いとこってどこかあるか?

749nobodyさん2019/08/18(日) 17:01:59.89ID:6SjMrK1F
herokuで良くない?

750nobodyさん2019/08/19(月) 12:29:21.87ID:???
サーバーの勉強したいのか、勉強せずにとにかく簡単にやりたいのかで変わる
サーバーの勉強したいならVPS勧める

751nobodyさん2019/08/22(木) 21:02:20.52ID:rATKxXKR
今現在のDjangoでの一般的なViewの実装は、クラスベースビュー(汎用ビュー)と関数ベースビューって使い分けをしたりするものですか?それとも全てクラスベースビューで行うものですか?

752nobodyさん2019/08/23(金) 09:59:17.61ID:jEISr3U5
>> 751
コーティング量が減るし、わかりやすいから、
ほとんどクラスベースドで実装してます。

753nobodyさん2019/08/23(金) 20:47:51.66ID:GKkGIby6
>>752
ありがとうございます
クラスベースでの実装でやってみます

754nobodyさん2019/08/24(土) 02:08:27.47ID:GmuPGuOM
>>753
Djangoのクラスベースドの流儀に従えば、問題なく実装できると思います。
ListView, DetailView, CreateView, UpdateView(その他にも・・・)、基本
的なことはDjangoがやってくれます。

だから、「これくらいはDjangoがやってくれるよね(考えてるよね)」という
意識で、余計なこと・余計な考えをせずに、単純に実装してみてください。

私は、最初にクラスベースドでゴリゴリ実装しており、時間があったときに
Djangoのソースを確認して赤面しました。他のフレームワークと同様に、
Djangoはちゃんとやってくれます。

モデルそれぞれのビュー(ListView、DetailView,CreateView、UpdateView)
が暗黙的に決定されるtemplateの名前を意識する。
TemplateViewには、get_context_dataでテンプレートにレンダリングするデータ渡す。
DetailViewを表示するurlには、pkをビューのself.kwargsで得られるように設定するなど。

755nobodyさん2019/08/24(土) 09:54:26.14ID:TXM06QgO
SPAと相性悪くね

756nobodyさん2019/08/24(土) 10:44:32.27ID:???
SPA で作るなら Django は API だけでフロントは別に用意するでしょ

757nobodyさん2019/08/24(土) 12:26:59.56ID:???
django-rest-frameworkがある。

758nobodyさん2019/08/24(土) 19:50:34.87ID:???
restframeworkもいろいろなビューが用意されているが、
細かいところチューニングできないからけっきょくAPIViewで書いちゃうんだよな

759nobodyさん2019/08/31(土) 15:37:26.09ID:???
やり方をしらんだけでしょ

760nobodyさん2019/08/31(土) 21:55:19.34ID:KJXgF8f5
質問失礼します
Djangoで複数のアプリケーションを含んだプロジェクトを作った時に各アプリケーションに共通のlogin_requiredを実装したいといった場合にlogin.htmlのviewにformを適用したいのですが、どのように実装するのでしょうか
accountsアプリに実装?
プロジェクトのtemplatesにregistrationディレクトリを作ってformをインクルード?
具合的に教えて頂けると嬉しいですが参考にできるサイトや専門書などありましたらお願いします

761nobodyさん2019/09/01(日) 00:11:28.43ID:???
日本語でおk

762nobodyさん2019/09/01(日) 01:20:29.43ID:JBreIGcY
やり方知らないんだったら
WSGIでルーティングだけやって
あとは普通にpythonごりごりの方が楽やで
わりとまじで

763nobodyさん2019/09/01(日) 19:50:39.15ID:LEhXL0OG
>>762
もうそれDjango使う必要なくない?w

764nobodyさん2019/09/02(月) 03:41:56.00ID:9b+oQTHM
そうなんか
まあCRUDできりゃいいよな
俺はCLI作って学習してる最中だけどもな

765nobodyさん2019/09/02(月) 14:55:18.41ID:???
セキュリティがばがばやんけ

766nobodyさん2019/09/03(火) 21:30:33.66ID:GtCP1NGE
viewに複数のモデルを持ち込みたい場合って、コンテキストのupdateでええの?

767nobodyさん2019/09/03(火) 22:40:12.88ID:???
>>766
それぞれ、別のモデルなの?

768nobodyさん2019/09/03(火) 22:43:48.79ID:???
>>760
django.contrib.auth.formsに、UserCreationForm
とかあるから、それをそのまま使う。

769nobodyさん2019/09/04(水) 19:19:26.26ID:a05pSqRl
>>767>>768
ありがとうございます
別々のモデルですね
例えば、Department、Employeeという二つのモデルがあって
viewでそれぞれのobject_listを使いたい場合とかです
Employeeの外部キーにDepartmentがあります

770nobodyさん2019/09/04(水) 19:49:04.15ID:???
セキュリティーホール発見ですね判ります

771nobodyさん2019/09/04(水) 23:04:59.82ID:???
>>769
ListViewでどちらかのモデルを、Metaまたは
get_querysetで指定して、もう一方をコンテキスト
で渡す。
それか、TemplateViewで両方のQuerySetを、
コンテキストで渡す。
そのViewが何を目的としているかによって選択す
れば良いと思います。
両方の情報を単に表示したいのであれば、後者かな
と思います。

772nobodyさん2019/09/04(水) 23:12:07.45ID:???
>>769
ごめんなさい。
771の返答の前に、EmployeeとDeparertmentを、
1つの表みたいに表示したいのですか?
そうであれば、EmployeeのQuerySetを渡すだけで、
Template内でDeparetmentは参照できます。

773nobodyさん2019/09/05(木) 18:41:50.04ID:+WIKTOru
>>771>>772
なるほどですね。ありがとうございます
ちょっとやってみます!

774nobodyさん2019/09/05(木) 20:05:22.32ID:???
>>771
ページネーションしたいときはListViewだな。

775nobodyさん2019/09/05(木) 20:21:02.78ID:+WIKTOru
連投すみません
ページネーションで思い出した。。querysetでEmployeeをDepartmentでフィルターかけたときのページネーションを簡単にする方法ってあります?

776nobodyさん2019/09/05(木) 22:14:44.21ID:???
>>775
urlが’department-employee/<int:department_id>/‘
としたら、ListViewで下の様に実装したら、
ページネーションの準備はできているはず。

paginate_by = 20

def get_queryset(self):
____department_id = self.request.GET.get(‘department_id’)
____department = get_object_or_404(Department, pk=department_id)
____return Employee.objects.filter(department=department)

Djangoがgetパラメータのpageから、そのページに
表示する20行をobject_listでテンプレートに渡すから、
テンプレートでページネーションの実装をすれば
いけるはず。

return Employee.objects.filter(department__id=department_id)
で、いけたっけ?

777nobodyさん2019/09/06(金) 07:32:07.11ID:8Lkc1Mj4
>>776
ありがとうございます。大変助かります
Djangoは情報が色々と散乱してて何が適切な実装なのか精査するのが大変ですね。ぼちぼち本も新しいのが出だしたのでじっくりやってみます

778nobodyさん2019/09/06(金) 13:26:41.92ID:AnI5ZwTK
次来るときは日本語の勉強してから来てくれ

779nobodyさん2019/09/06(金) 15:31:28.05ID:???
>>778
まぁまぁ。
Djangoの用語に慣れてないからだと思う。

780nobodyさん2019/09/07(土) 00:31:33.50ID:???
横文字読めるなら光の早さで正確な情報拾えるけどな

781nobodyさん2019/09/07(土) 23:48:35.87ID:???
>>780
光の速さで情報拾えるんなら、ここ見るのやめた
方がいいのでは?
まだ経験不足の人達を笑うため?

782nobodyさん2019/09/10(火) 00:13:10.96ID:???
>>777
最初は動けばいいと思います。
少し慣れて、時間かできたら、views.genericの
ソース確認してみてください。
全て理解しようとしないで、雰囲気を掴むくらいで。

雰囲気を掴めれば、どのように実装すればいいか、
だんだん理解が深まると思います。

783nobodyさん2019/10/10(木) 11:39:53.31ID:???
タグを作るとして皆さんならどういう設計にしますか?
モデルにtagsというテキストフィールドを持たせますか?
tag_xxxというモデル同士を繋げるモデルを作りますか?

私は両方作ってみたことはあります
簡単だったのは前者ですが、パフォーマンスはあまり良くないらしいですね・・・

784nobodyさん2019/10/10(木) 20:09:26.50ID:???
ManyToMany のフィールド作れば良いだけでは

785nobodyさん2019/10/11(金) 00:07:46.66ID:???
ManyToManyフィールド使えばタグを実装できるんですか?
それはやったことないです( ゚Д゚)

786nobodyさん2019/10/11(金) 01:20:04.57ID:???
>>784
ManyToManyだと中間テーブルが自動的に作成されるんですね!
求めてたものはこれだと思います!
どうもありがとう!

787nobodyさん2019/10/11(金) 22:50:14.61ID:???
うむ。頑張って

788nobodyさん2019/11/04(月) 11:53:50.49ID:???
初心者で申し訳ないのですが
allauthでカスタムユーザーを利用する方法を解説してる記事などはないでしょうか?

789nobodyさん2019/11/04(月) 19:09:14.28ID:???
>>788
無事、DefaultAccountAdapterを使ってカスタムユーザーのサインアップができました、失礼しました!

新着レスの表示
レスを投稿する