【Python】Webフレームワーク Django について語ろう!




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

702: 名無しの民 2019/03/03(日) 12:03:00.31 ID:XJRvLHxg
ModelがRDB(MS)のActiveRecord限定だからね。
強みのようで最大の欠点でもある。
704: 名無しの民 2019/03/03(日) 21:39:41.92 ID:???
>>702
申し訳ありませんが、どのようなシチュエーション
で、欠点になるのですか?
他のFW知らないので、教えて下さい。
705: 名無しの民 2019/03/04(月) 06:23:33.98 ID:???
>>702
MSって何?
706: 名無しの民 2019/03/04(月) 10:47:27.60 ID:???
マイクロソフト
707: 名無しの民 2019/03/04(月) 23:26:04.13 ID:???
ActiveRecordって、一般的に使用されてる語彙だっ
たのね。勉強になりました。
今のところ、導出項目はModelのsaveメソッドを
オーバライドする事で対応してます。
710: 名無しの民 2019/03/27(水) 15:43:54.78 ID:???
そもそもdjangoって仕事に生かせるものなのか?
「おれdjango使うことできまーす。仕事なにかありますか?」ってなったらどんな仕事できんだよ。
713: 名無しの民 2019/03/28(木) 07:08:42.85 ID:???
>>710
rails勉強させられる
716: 名無しの民 2019/04/06(土) 01:47:05.69 ID:???
>>710
俺はそれで今の仕事してる
社内システム作ってる
711: 名無しの民 2019/03/27(水) 17:27:51.47 ID:???
俺ぐらいになるとdjangoでパンケーキを焼くことが出来る
715: 名無しの民 2019/04/03(水) 22:18:33.23 ID:???
LTSきたー。
717: 名無しの民 2019/05/03(金) 10:12:21.51 ID:???
Ruby on Rails に対する Django の優位点って何?
718: 名無しの民 2019/05/03(金) 13:14:53.95 ID:q6AE+Q6a
>>717
なんだと思う?
736: 名無しの民 2019/07/01(月) 18:13:17.80 ID:???
>>717
Rails使ったことないがRailsは管理サイトは自動で作ってくれるの?
739: 名無しの民 2019/07/08(月) 17:03:34.05 ID:???
>>736
Rails標準ではないがGemに追加すると管理サイト作ってくれるのあるぞ
740: 名無しの民 2019/07/08(月) 19:42:55.91 ID:???
>>739
ミドルウェアか
Railsは中小企業とかベンチャーがよく使ってるから、サービス売るならRailsで作ったほうがいいんだよな
まぁ、Rubyの人気落ちてるからこれからどうなるかわからんけど
719: 名無しの民 2019/05/03(金) 15:19:07.41 ID:???
どう考えても

scaffold

一発ですべてできてしまう Rails の方がすぐれていると思うが

720: 名無しの民 2019/05/03(金) 15:22:56.43 ID:o+PcQ3EQ
DBの構成変えてもか
721: 名無しの民 2019/05/03(金) 15:53:24.21 ID:???
DB ごと作り直せばいいじゃない
どうせ全自動で作ってくれるんだから
722: 名無しの民 2019/05/05(日) 08:57:10.64 ID:???
デプロイが一番難しいな
レンサバでDjango動かしているけど
なんか設定ミスがありそうで怖い
723: 名無しの民 2019/05/05(日) 09:44:06.97 ID:???
何でやっても設定ミスを減らすことはできないと思うが
724: 名無しの民 2019/05/05(日) 22:43:13.01 ID:???
そんなことはない
725: 名無しの民 2019/05/06(月) 08:46:49.02 ID:???
デフォルト設定が絶妙だということ?
デフォルト設定が目的の設定だったらそれでいいけど
結局自分でいじるんだったら、ミスする確率はそんなに
変わらないと思うが
726: 名無しの民 2019/05/06(月) 17:08:39.08 ID:???
安心しとけ
こんな簡単な設定もわからないなら他のフレームワーク触らない方が良い
731: 名無しの民 2019/06/19(水) 08:45:26.72 ID:???
adminサイトがFileFieldをちゃんと認識して
ファイルアップロードできるのすごいね

ただそのままだと404で開けないか
アップロード先を公開してるurlにしないと
だめなのか(´・ω・`)

732: 名無しの民 2019/06/22(土) 00:27:40.37 ID:???
djangoでpythonはじめて使うけどシンプルでいいね
733: 名無しの民 2019/06/24(月) 18:27:14.28 ID:???
USE_L10NってTrueにする必要ある?

DATE_INPUT_FORMATSの
設定が反映されないから
ずーっと不思議に思ってたんだが
USE_L10NをFalseにしたら反映されたよ

734: 名無しの民 2019/06/25(火) 17:53:22.19 ID:ksL2qET3
令和対応したいならUSE_L10NはTrue
735: 名無しの民 2019/06/25(火) 19:36:58.13 ID:???
>>734
日付を%Y-%m-312で入力したいから
仕方ないね(´・ω・`)
737: 名無しの民 2019/07/07(日) 14:14:51.70 ID:???
rails って複数データベースとか、簡単に n+1 対応とか出来るようになったの?
あとセキュリティやらかしてたけど、モジラみたいな団体がスキャンしてたりするの?
738: 名無しの民 2019/07/07(日) 14:22:15.95 ID:268hLUG2
Python on Rails はよ
741: 名無しの民 2019/07/15(月) 09:26:36.73 ID:oAXghJ86
Railsはプロジェクトが拡大していくと途端に破綻するので、
プロトタイピング用途以外に使うのは止めたほうが良い。
743: 名無しの民 2019/07/30(火) 15:43:20.79 ID:???
744: 名無しの民 2019/08/16(金) 20:06:14.60 ID:???
サーバー知識皆無で、レンサバにデプロイしたいので
参考書教えて下さい。
745: 名無しの民 2019/08/16(金) 22:42:17.67 ID:???
公式のドキュメントに手順が書いてある
746: 名無しの民 2019/08/16(金) 23:37:34.86 ID:???
定額で動かすとなるとどのレンサバが安い?
やっぱさくらのバーチャル?
748: 名無しの民 2019/08/18(日) 02:13:35.68 ID:???
>>746
さくらのVPSでいいんじゃないか
あそこより安いとこってどこかあるか?
750: 名無しの民 2019/08/19(月) 12:29:21.87 ID:???
サーバーの勉強したいのか、勉強せずにとにかく簡単にやりたいのかで変わる
サーバーの勉強したいならVPS勧める
751: 名無しの民 2019/08/22(木) 21:02:20.52 ID:rATKxXKR
今現在のDjangoでの一般的なViewの実装は、クラスベースビュー(汎用ビュー)と関数ベースビューって使い分けをしたりするものですか?それとも全てクラスベースビューで行うものですか?
752: 名無しの民 2019/08/23(金) 09:59:17.61 ID:jEISr3U5
>> 751
コーティング量が減るし、わかりやすいから、
ほとんどクラスベースドで実装してます。
753: 名無しの民 2019/08/23(金) 20:47:51.66 ID:GKkGIby6
>>752
ありがとうございます
クラスベースでの実装でやってみます
754: 名無しの民 2019/08/24(土) 02:08:27.47 ID: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で得られるように設定するなど。

755: 名無しの民 2019/08/24(土) 09:54:26.14 ID:TXM06QgO
SPAと相性悪くね
756: 名無しの民 2019/08/24(土) 10:44:32.27 ID:???
SPA で作るなら Django は API だけでフロントは別に用意するでしょ
757: 名無しの民 2019/08/24(土) 12:26:59.56 ID:???
django-rest-frameworkがある。
758: 名無しの民 2019/08/24(土) 19:50:34.87 ID:???
restframeworkもいろいろなビューが用意されているが、
細かいところチューニングできないからけっきょくAPIViewで書いちゃうんだよな
759: 名無しの民 2019/08/31(土) 15:37:26.09 ID:???
やり方をしらんだけでしょ
760: 名無しの民 2019/08/31(土) 21:55:19.34 ID:KJXgF8f5
質問失礼します
Djangoで複数のアプリケーションを含んだプロジェクトを作った時に各アプリケーションに共通のlogin_requiredを実装したいといった場合にlogin.htmlのviewにformを適用したいのですが、どのように実装するのでしょうか
accountsアプリに実装?
プロジェクトのtemplatesにregistrationディレクトリを作ってformをインクルード?
具合的に教えて頂けると嬉しいですが参考にできるサイトや専門書などありましたらお願いします
768: 名無しの民 2019/09/03(火) 22:43:48.79 ID:???
>>760
django.contrib.auth.formsに、UserCreationForm
とかあるから、それをそのまま使う。
762: 名無しの民 2019/09/01(日) 01:20:29.43 ID:JBreIGcY
やり方知らないんだったら
WSGIでルーティングだけやって
あとは普通にpythonごりごりの方が楽やで
わりとまじで
763: 名無しの民 2019/09/01(日) 19:50:39.15 ID:LEhXL0OG
>>762
もうそれDjango使う必要なくない?w
764: 名無しの民 2019/09/02(月) 03:41:56.00 ID:9b+oQTHM
そうなんか
まあCRUDできりゃいいよな
俺はCLI作って学習してる最中だけどもな
765: 名無しの民 2019/09/02(月) 14:55:18.41 ID:???
セキュリティがばがばやんけ
766: 名無しの民 2019/09/03(火) 21:30:33.66 ID:GtCP1NGE
viewに複数のモデルを持ち込みたい場合って、コンテキストのupdateでええの?
767: 名無しの民 2019/09/03(火) 22:40:12.88 ID:???
>>766
それぞれ、別のモデルなの?
769: 名無しの民 2019/09/04(水) 19:19:26.26 ID:a05pSqRl
>>767>>768
ありがとうございます
別々のモデルですね
例えば、Department、Employeeという二つのモデルがあって
viewでそれぞれのobject_listを使いたい場合とかです
Employeeの外部キーにDepartmentがあります
771: 名無しの民 2019/09/04(水) 23:04:59.82 ID:???
>>769
ListViewでどちらかのモデルを、Metaまたは
get_querysetで指定して、もう一方をコンテキスト
で渡す。
それか、TemplateViewで両方のQuerySetを、
コンテキストで渡す。
そのViewが何を目的としているかによって選択す
れば良いと思います。
両方の情報を単に表示したいのであれば、後者かな
と思います。
773: 名無しの民 2019/09/05(木) 18:41:50.04 ID:+WIKTOru
>>771>>772
なるほどですね。ありがとうございます
ちょっとやってみます!
774: 名無しの民 2019/09/05(木) 20:05:22.32 ID:???
>>771
ページネーションしたいときはListViewだな。
772: 名無しの民 2019/09/04(水) 23:12:07.45 ID:???
>>769
ごめんなさい。
771の返答の前に、EmployeeとDeparertmentを、
1つの表みたいに表示したいのですか?
そうであれば、EmployeeのQuerySetを渡すだけで、
Template内でDeparetmentは参照できます。
770: 名無しの民 2019/09/04(水) 19:49:04.15 ID:???
セキュリティーホール発見ですね判ります
775: 名無しの民 2019/09/05(木) 20:21:02.78 ID:+WIKTOru
連投すみません
ページネーションで思い出した。。querysetでEmployeeをDepartmentでフィルターかけたときのページネーションを簡単にする方法ってあります?
776: 名無しの民 2019/09/05(木) 22:14:44.21 ID:???
>>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)
で、いけたっけ?

777: 名無しの民 2019/09/06(金) 07:32:07.11 ID:8Lkc1Mj4
>>776
ありがとうございます。大変助かります
Djangoは情報が色々と散乱してて何が適切な実装なのか精査するのが大変ですね。ぼちぼち本も新しいのが出だしたのでじっくりやってみます
782: 名無しの民 2019/09/10(火) 00:13:10.96 ID:???
>>777
最初は動けばいいと思います。
少し慣れて、時間かできたら、views.genericの
ソース確認してみてください。
全て理解しようとしないで、雰囲気を掴むくらいで。

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

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

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

784: 名無しの民 2019/10/10(木) 20:09:26.50 ID:???
ManyToMany のフィールド作れば良いだけでは
786: 名無しの民 2019/10/11(金) 01:20:04.57 ID:???
>>784
ManyToManyだと中間テーブルが自動的に作成されるんですね!
求めてたものはこれだと思います!
どうもありがとう!
785: 名無しの民 2019/10/11(金) 00:07:46.66 ID:???
ManyToManyフィールド使えばタグを実装できるんですか?
それはやったことないです( ゚Д゚)
787: 名無しの民 2019/10/11(金) 22:50:14.61 ID:???
うむ。頑張って
788: 名無しの民 2019/11/04(月) 11:53:50.49 ID:???
初心者で申し訳ないのですが
allauthでカスタムユーザーを利用する方法を解説してる記事などはないでしょうか?
789: 名無しの民 2019/11/04(月) 19:09:14.28 ID:???
>>788
無事、DefaultAccountAdapterを使ってカスタムユーザーのサインアップができました、失礼しました!
793: 名無しの民 2020/02/27(木) 00:31:08.01 ID:???
views.pyを分割したい場合はviewディレクトリを作成せよとなんかの記事にあったのですがさらに分割したい場合はその下にさらにディレクトリを作ればいいのでしょうか?
794: 名無しの民 2020/02/27(木) 00:32:43.53 ID:kq0j2+6F
>>793
こちらの記事を見ました
https://qiita.com/piro87084806/items/0a67f7b22856d71d309e
795: 名無しの民 2020/02/27(木) 08:33:25.55 ID:???
>>793
viewに限らず、呼び出してるところで分割したり移動したものをimportすればええんやで
796: 名無しの民 2020/02/27(木) 09:27:05.26 ID:???
djangoというよりpythonの話なんですね。ありがとうございました。
799: 名無しの民 2020/04/17(金) 15:39:13.38 ID:EV5uUzNa
django初心者です
フォームからPOST
viewでPOSTデータを受け取る
View内で「myappディレクトリにあるexec.py」にそのデータを渡し、その後は永続的にexec.pyが動く
exec.pyにデータを渡した時点で完了ページをreturnする(このときも、この後もexec.pyは動作している)

というものを作ろうとしています。
現状ではexec.pyが終了するまでreturnにたどり着かないので困ってしまいました
threadingを使う方法も考えたのですが、djangoにこうした状況を想定した関数などがあるのではないかと思い質問させていただきました
皆さんならどうするか教えてくださると嬉しいです・・

805: 名無しの民 2020/04/19(日) 12:44:58.00 ID:???
>>799
asgi 使いな
800: 名無しの民 2020/04/17(金) 15:45:42.50 ID:s+2+Hs4y
subprocess
801: 名無しの民 2020/04/17(金) 15:58:04.85 ID:???
Celery とか Background Tasks とかでキューイングすれば良いんじゃね
802: 名無しの民 2020/04/17(金) 20:06:14.94 ID:???
マルチプロセスでググれ
803: 名無しの民 2020/04/18(土) 07:41:27.80 ID:8bO/SsnJ
djangoの解説でよくある.pkってなに?
なんの略なのか気になるんだが
https://opendata-web.site/blog/entry/21/
https://narito.ninja/blog/detail/90/
804: 名無しの民 2020/04/18(土) 10:55:27.82 ID:Y+S1gni+
primary key ? 知らんけど
807: 名無しの民 2020/05/06(水) 16:54:11.54 ID:e0zIRSJQ
質問です。
django-admin startprojectのコマンドが
実行できないのですがバージョンが古いからだと
思っているのですがいかがでしょうか?

現在、使用OSはRaspbianで
Pythonのバージョンは2.7.16

Djangoのバージョンは( 1.11.29 , ‘final’ , 0 )
なんですが
どうやったたpythonとDjangoのバージョンを
それぞれ2と3にあげられますか?

今、必死にネット検索していますが
納得いく答えがありません。

808: 名無しの民 2020/05/06(水) 19:35:03.15 ID:???
納得されるかは分かりませんが、pyenv なりで新しいバージョンの python 入れて
pipenv なりで仮想環境に新しいバージョンの Django を入れればよいのではないですか
809: 名無しの民 2020/05/07(木) 04:18:38.21 ID:tym3IDYK
>>808
やはりPython2では
django-admin startproject .

が実行できない感じでしょうか!

pyenv色々なことで見るので
使ってみたいですね。

810: 名無しの民 2020/05/09(土) 00:23:31.03 ID:UawIkR7P
pythonとDjangoのバージョン上げて
Startproject出来ました!

このスレはあまり人がいない感じなんでしょうか・・・

811: 名無しの民 2020/05/09(土) 00:47:56.46 ID:???
webprogだからねえ
815: 名無しの民 2020/05/10(日) 19:26:55.02 ID:???
今どきapacheとか
817: 名無しの民 2020/05/10(日) 22:23:15.96 ID:???
Nginxだろ、普通
818: 名無しの民 2020/05/10(日) 22:34:26.51 ID:???
>>817
マルチで聞いてるんだからわざわざここで答えなくてもいいんじゃない
せっかく書いても無視される可能性あるんだから馬鹿らしいでしょ
820: 名無しの民 2020/05/11(月) 01:53:47.16 ID:KmdZSk6n
>>817
軽量だからでしょうか?
自分みたいな初心者にも使えるといいのですが・・・
821: 名無しの民 2020/05/11(月) 10:34:58.21 ID:kf08OcBm
Django 自身にも鯖機能内蔵されてるやろ
822: 名無しの民 2020/05/11(月) 17:08:37.47 ID:2E7hrS8x
>>821
自分で作ったWebサイトを公開したいので・・・
823: 名無しの民 2020/05/11(月) 17:09:18.65 ID:2E7hrS8x
内臓のではセキュリティ上、問題があると聞きました。
824: 名無しの民 2020/05/12(火) 16:51:01.24 ID:???
初心者こそnginxやで
825: 名無しの民 2020/05/12(火) 17:17:40.09 ID:1AtCvXvP
>>824
そうなんですね。
最近の記事を読んだらnginxのシェアも上がってるみたいなので、そっちに切り替えてみます。

せっかく入れたApache2はアンインストールした方がいいですかね。

828: 名無しの民 2020/05/17(日) 20:29:52.88 ID:???
サイト側としては少しでもアクセスしてもらって広告収入とかを得たいだろうから
マルチを排除しようとするのは完全におまえらの我がまま
表現の自由の侵害
829: 名無しの民 2020/05/17(日) 21:45:56.00 ID:???
その通り。
回答するもしないも俺の自由
だから俺はマルチに回答はしない




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です