【Python】Webフレームワーク Djangoスレ Part2
■ このスレッドは過去ログ倉庫に格納されています
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 >>710
俺はそれで今の仕事してる
社内システム作ってる Ruby on Rails に対する Django の優位点って何? どう考えても
scaffold
一発ですべてできてしまう Rails の方がすぐれていると思うが DB ごと作り直せばいいじゃない
どうせ全自動で作ってくれるんだから デプロイが一番難しいな
レンサバでDjango動かしているけど
なんか設定ミスがありそうで怖い 何でやっても設定ミスを減らすことはできないと思うが デフォルト設定が絶妙だということ?
デフォルト設定が目的の設定だったらそれでいいけど
結局自分でいじるんだったら、ミスする確率はそんなに
変わらないと思うが 安心しとけ
こんな簡単な設定もわからないなら他のフレームワーク触らない方が良い 知識がない人ほど謙虚じゃないよね
サーバー関連は気おつけたほうがいいよ adminサイトがFileFieldをちゃんと認識して
ファイルアップロードできるのすごいね
ただそのままだと404で開けないか
アップロード先を公開してるurlにしないと
だめなのか(´・ω・`) djangoでpythonはじめて使うけどシンプルでいいね USE_L10NってTrueにする必要ある?
DATE_INPUT_FORMATSの
設定が反映されないから
ずーっと不思議に思ってたんだが
USE_L10NをFalseにしたら反映されたよ >>734
日付を%Y-%m-%dで入力したいから
仕方ないね(´・ω・`) >>717
Rails使ったことないがRailsは管理サイトは自動で作ってくれるの? rails って複数データベースとか、簡単に n+1 対応とか出来るようになったの?
あとセキュリティやらかしてたけど、モジラみたいな団体がスキャンしてたりするの? >>736
Rails標準ではないがGemに追加すると管理サイト作ってくれるのあるぞ >>739
ミドルウェアか
Railsは中小企業とかベンチャーがよく使ってるから、サービス売るならRailsで作ったほうがいいんだよな
まぁ、Rubyの人気落ちてるからこれからどうなるかわからんけど Railsはプロジェクトが拡大していくと途端に破綻するので、
プロトタイピング用途以外に使うのは止めたほうが良い。 サーバー知識皆無で、レンサバにデプロイしたいので
参考書教えて下さい。 定額で動かすとなるとどのレンサバが安い?
やっぱさくらのバーチャル? >>746
さくらのVPSでいいんじゃないか
あそこより安いとこってどこかあるか? サーバーの勉強したいのか、勉強せずにとにかく簡単にやりたいのかで変わる
サーバーの勉強したいならVPS勧める 今現在のDjangoでの一般的なViewの実装は、クラスベースビュー(汎用ビュー)と関数ベースビューって使い分けをしたりするものですか?それとも全てクラスベースビューで行うものですか? >> 751
コーティング量が減るし、わかりやすいから、
ほとんどクラスベースドで実装してます。 >>752
ありがとうございます
クラスベースでの実装でやってみます >>753
Djangoのクラスベースドの流儀に従えば、問題なく実装できると思います。
ListView, DetailView, CreateView, UpdateView(その他にも・・・)、基本
的なことはDjangoがやってくれます。
だから、「これくらいはDjangoがやってくれるよね(考えてるよね)」という
意識で、余計なこと・余計な考えをせずに、単純に実装してみてください。
私は、最初にクラスベースドでゴリゴリ実装しており、時間があったときに
Djangoのソースを確認して赤面しました。他のフレームワークと同様に、
Djangoはちゃんとやってくれます。
モデルそれぞれのビュー(ListView、DetailView,CreateView、UpdateView)
が暗黙的に決定されるtemplateの名前を意識する。
TemplateViewには、get_context_dataでテンプレートにレンダリングするデータ渡す。
DetailViewを表示するurlには、pkをビューのself.kwargsで得られるように設定するなど。 SPA で作るなら Django は API だけでフロントは別に用意するでしょ django-rest-frameworkがある。 restframeworkもいろいろなビューが用意されているが、
細かいところチューニングできないからけっきょくAPIViewで書いちゃうんだよな 質問失礼します
Djangoで複数のアプリケーションを含んだプロジェクトを作った時に各アプリケーションに共通のlogin_requiredを実装したいといった場合にlogin.htmlのviewにformを適用したいのですが、どのように実装するのでしょうか
accountsアプリに実装?
プロジェクトのtemplatesにregistrationディレクトリを作ってformをインクルード?
具合的に教えて頂けると嬉しいですが参考にできるサイトや専門書などありましたらお願いします やり方知らないんだったら
WSGIでルーティングだけやって
あとは普通にpythonごりごりの方が楽やで
わりとまじで >>762
もうそれDjango使う必要なくない?w そうなんか
まあCRUDできりゃいいよな
俺はCLI作って学習してる最中だけどもな viewに複数のモデルを持ち込みたい場合って、コンテキストのupdateでええの? >>760
django.contrib.auth.formsに、UserCreationForm
とかあるから、それをそのまま使う。 >>767>>768
ありがとうございます
別々のモデルですね
例えば、Department、Employeeという二つのモデルがあって
viewでそれぞれのobject_listを使いたい場合とかです
Employeeの外部キーにDepartmentがあります >>769
ListViewでどちらかのモデルを、Metaまたは
get_querysetで指定して、もう一方をコンテキスト
で渡す。
それか、TemplateViewで両方のQuerySetを、
コンテキストで渡す。
そのViewが何を目的としているかによって選択す
れば良いと思います。
両方の情報を単に表示したいのであれば、後者かな
と思います。 >>769
ごめんなさい。
771の返答の前に、EmployeeとDeparertmentを、
1つの表みたいに表示したいのですか?
そうであれば、EmployeeのQuerySetを渡すだけで、
Template内でDeparetmentは参照できます。 >>771>>772
なるほどですね。ありがとうございます
ちょっとやってみます! >>771
ページネーションしたいときはListViewだな。 連投すみません
ページネーションで思い出した。。querysetでEmployeeをDepartmentでフィルターかけたときのページネーションを簡単にする方法ってあります? >>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)
で、いけたっけ? >>776
ありがとうございます。大変助かります
Djangoは情報が色々と散乱してて何が適切な実装なのか精査するのが大変ですね。ぼちぼち本も新しいのが出だしたのでじっくりやってみます >>778
まぁまぁ。
Djangoの用語に慣れてないからだと思う。 >>780
光の速さで情報拾えるんなら、ここ見るのやめた
方がいいのでは?
まだ経験不足の人達を笑うため? >>777
最初は動けばいいと思います。
少し慣れて、時間かできたら、views.genericの
ソース確認してみてください。
全て理解しようとしないで、雰囲気を掴むくらいで。
雰囲気を掴めれば、どのように実装すればいいか、
だんだん理解が深まると思います。 タグを作るとして皆さんならどういう設計にしますか?
モデルにtagsというテキストフィールドを持たせますか?
tag_xxxというモデル同士を繋げるモデルを作りますか?
私は両方作ってみたことはあります
簡単だったのは前者ですが、パフォーマンスはあまり良くないらしいですね・・・ ManyToMany のフィールド作れば良いだけでは ManyToManyフィールド使えばタグを実装できるんですか?
それはやったことないです( ゚Д゚) >>784
ManyToManyだと中間テーブルが自動的に作成されるんですね!
求めてたものはこれだと思います!
どうもありがとう! 初心者で申し訳ないのですが
allauthでカスタムユーザーを利用する方法を解説してる記事などはないでしょうか? >>788
無事、DefaultAccountAdapterを使ってカスタムユーザーのサインアップができました、失礼しました! views.pyを分割したい場合はviewディレクトリを作成せよとなんかの記事にあったのですがさらに分割したい場合はその下にさらにディレクトリを作ればいいのでしょうか? >>793
viewに限らず、呼び出してるところで分割したり移動したものをimportすればええんやで djangoというよりpythonの話なんですね。ありがとうございました。 django初心者です
フォームからPOST
viewでPOSTデータを受け取る
View内で「myappディレクトリにあるexec.py」にそのデータを渡し、その後は永続的にexec.pyが動く
exec.pyにデータを渡した時点で完了ページをreturnする(このときも、この後もexec.pyは動作している)
というものを作ろうとしています。
現状ではexec.pyが終了するまでreturnにたどり着かないので困ってしまいました
threadingを使う方法も考えたのですが、djangoにこうした状況を想定した関数などがあるのではないかと思い質問させていただきました
皆さんならどうするか教えてくださると嬉しいです・・ Celery とか Background Tasks とかでキューイングすれば良いんじゃね >>1
東京三鷹の土井(剛)莉里子
https://i.imgur.com/Fbgp0yG.png
氏名■土井剛(莉里子)
生年月日■1994.3.7
前住所■〒181-0013 東京都三鷹市下連雀5丁目3 シティハイツ吉祥寺通り4階
性別■男(詐欺師のため、戸籍変更している可能性あり)
Twitter■@copy__writing @kotobamemo_bot
疾患■性同一性障害(LGBT)、発達障害(ADHD)、アスペルガー症候群、統合失調症
●一方的に好意を寄せる男性から相手にされないと嫌がらせを繰り返す
●某大学病院の精神科隔離病棟にて強制入院
●骨が見えるほどのリストカット
●奇声をあげながら自室部屋のドアをナイフで突き刺す
●シティハイツ吉祥寺通り4階から飛び降り自殺
●性転換手術(金玉を取る)
●トラブル...嫌がらせ、ハッキング、乗っ取り、たかり、脅迫、殺害予告...etc
●去年から今年にかけてyoutuber同士のトラブルの仲介に入り某大手youtuberから複数回に渡り1億近い慰謝料をふんだくる
●自宅の吉祥寺にいられなくなり、大阪に潜伏中(警察からも逃げている) 質問です。
django-admin startprojectのコマンドが
実行できないのですがバージョンが古いからだと
思っているのですがいかがでしょうか?
現在、使用OSはRaspbianで
Pythonのバージョンは2.7.16
Djangoのバージョンは( 1.11.29 , ‘final’ , 0 )
なんですが
どうやったたpythonとDjangoのバージョンを
それぞれ2と3にあげられますか?
今、必死にネット検索していますが
納得いく答えがありません。 納得されるかは分かりませんが、pyenv なりで新しいバージョンの python 入れて
pipenv なりで仮想環境に新しいバージョンの Django を入れればよいのではないですか >>808
やはりPython2では
django-admin startproject .
が実行できない感じでしょうか!
pyenv色々なことで見るので
使ってみたいですね。 pythonとDjangoのバージョン上げて
Startproject出来ました!
このスレはあまり人がいない感じなんでしょうか・・・ ム板でDjangoのインストールの話されても
つまらんから追い返されるだけ ■ このスレッドは過去ログ倉庫に格納されています