【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 >>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のインストールの話されても
つまらんから追い返されるだけ すみません、Djangoをapacheを使って
サイトを公開したいのですが
以下のサイトのようにmod_wsgiを使う感じでしょうか?
自分はRaspbianを使っており以下のサイトでは
Djangoの古いバージョンを使ってるみたいなので
現在も以下の方法で公開出来るのか知りたいです。
https://www.sejuku.net/blog/27637 >>814
すみません、答えが返ってくるか分からないまま
待ち続けるのは時間をかなり浪費するので
とりあえず多方で聞いています。
>>815
Apacheの方が多くの人が使っていて
サポートもあっていいと良く書かれているのですが
実際は違うんですか? >>817
マルチで聞いてるんだからわざわざここで答えなくてもいいんじゃない
せっかく書いても無視される可能性あるんだから馬鹿らしいでしょ >>818
質問したスレは全部チェックしてますよ!
いつどこに解答があるか分からないので! >>817
軽量だからでしょうか?
自分みたいな初心者にも使えるといいのですが・・・ >>821
自分で作ったWebサイトを公開したいので・・・ 内臓のではセキュリティ上、問題があると聞きました。 >>824
そうなんですね。
最近の記事を読んだらnginxのシェアも上がってるみたいなので、そっちに切り替えてみます。
せっかく入れたApache2はアンインストールした方がいいですかね。 マルチって別にあちこちで聞いてもいいだろ
なんでおまえらが気にするんだ?
アホか サイト側としては少しでもアクセスしてもらって広告収入とかを得たいだろうから
マルチを排除しようとするのは完全におまえらの我がまま
表現の自由の侵害 その通り。
回答するもしないも俺の自由
だから俺はマルチに回答はしない みんな同じ様なスレ巡回して見てんのに
同じ書き込み出てきたらウザいだろ
そんな事もわからんの? 回答者が金銭的な対価を得る有償のサポートに対して質問者が金を払ってマルチするなら好きにすれば良いが
コミュニティのような回答者の善意を元にしているような場所では
マルチによって複数の回答者が費やしたコストが無駄になることが理解できませんか?
まあ好きで回答してるようなヤツのことなんて知ったことじゃねーって思ってそうですが。 確かに他のとこでも回答もらえるならわざわざ自分の時間削ってまで
答える必要ないなって思っちゃうよね
そんで誰も答えなくなってこのスレみたいに衰退していくと… >>833
それはあるかもね
pythonのヘビーユーザーと入門者には壁があると思う
昔ながらのモヒカン的な人はこういうルール守らない奴は
猛烈にキレるか最初から相手にしないよね
そりゃ利用者数増えても掲示板は廃れるよ
まあ善意で答えるコミュニティ的な場所なんだし
最低限のルールぐらいは守るべきではあるよね >>831-832
結局お前らは自分のことしか考えてないのな すみません!
マルチをする理由の1つをあげます!
自分が聞きたい内容の
Djangoのフレームワークを使って
WebサーバーはNginx uwsgiを使いたいが
localhostで接続出来ません!
ImportError at /
Cannot import name path
Puthonのバージョンは3を使ってるのに
エラーメッセージにはPython Version 2.7.16と
でてしまいます。
この質問の場合はPythonスレに行くべきですか?
それともnginx?Linuxネットワーク?
初心者の質問スレ?くだスレ?
でPythonスレに行って「他スレで聞いてくれ」
ってあしらわれたら、また他のスレで回答待ち?
皆さんそんなのんびりとやってるんですか? 勝手に掲示板管理者の代弁してるつもりになってるほうがどうかしてると思うが… プログラマは性格悪いからまともな回答はしないぞ
これは心理
なるべくしてなってる事を理解しろ 答える答えないはおまえらの自由だが、誰かの書き込みに待ったをかける権利はお前らにはないだろ
それっておまえらの嫌う言論弾圧ってやつじゃないのか?
バカなの? >>836
お前何様だよ
「のんびりとやってんですか?」
じゃねーよ
そんなのはお前の事情なの
お前は他人の時間を奪ってる「自覚」はないの?
はっきり言ってお前のしている質問の答えは
このスレにいる人間なら大体何が原因か想像付くんだよ
でももうまともに答える奴はいないだろうよ
なんでか判るか?
最低限のルールすら守れない奴に関わり合いたくないからだよ
ここで答えると図に乗ってルール無視して
ずっと同じことやり続けるのが目に見えてるから
他人に迷惑をかける行為を自分が解決すれば良いからという理由で
ずっとやり続ける利己的な人間なんだよお前は
ここじゃない知恵袋なりなんなりで聞いてくれ >>836
ちょっと検索したら出てくるだろうに、なぜできないのかがわからん。
こういうやつどこにでもいるけど。 >>836
別に金払って質問してる訳でもないから答えもらえたらラッキーくらいでしか質問してないんじゃないかな
だから多くの人はあなたみたいにのんびり回答を待ってるんじゃなくて
もっと自分で状況調べるなり本なりで勉強するなりしてるんだと思うよ
そういうスタンスが透けて見えるからいろんなスレでたらい回しにされるんじゃないかな てか、言論弾圧だみたいな無理筋な話してる人とかへんに擁護してる人とかいるけど、
このスレにいるような人なら質問の大体の原因わかってるだろうから
馬鹿みたいな擁護して他人を批判する前に自分で回答してやりゃいいんじゃないの?
まさか自演ってことはないよね… Symfonyやってて難しくて苦労してるんだけどDjangoはどうなの?
諸々を考慮した学習コストとか
Python界隈はそこらへん工夫してるイメージだけど Symfonyが難しく感じるなら大抵のフレームワークは難しいんじゃないの
俺はDjangoから入ったが、Symfonyが難しいとは感じなかった >>836
サイト公開するならherokuで良くない?
apacheもnginxの設定もいらないし。 サイト公開するのが目的なんじゃなくてラズパイ活用するのが目的なんじゃない ■ このスレッドは過去ログ倉庫に格納されています