1read 100read
2012年4月WebProg22: 【Python】Webフレームワーク Djangoスレ Part2 (106)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
★三 【 スクリプト改造工房 PART 9 】 ★三 (689)
PHP上級者が集まるスレ (489)
Zend Framework Part5 (638)
★三 【 スクリプト改造工房 PART 9 】 ★三 (689)
C/C++ CGIスレッド (707)
【GREE】ソーシャルアプリ開発スレ【モバゲー】 (121)
【Python】Webフレームワーク Djangoスレ Part2
1 :11/12/15 〜 最終レス :12/05/04 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
2 : 落ちてたので立て直してみた 何度も落ちてるのでまた落ちると思うけどよろすく
3 : で、今一番人気はどのフレームワークなの?
4 : >>3 Djaンゴwwwwwww
5 : ↑マジで? Turboの方がいいとか前聞いたことあったけど、やっぱDjangoなのか 速度も速いし、ライブラリのように使えて便利とか聞いて、そうなのかと思った記憶がある
6 : 同時並行で2つのアプリを作るならポート番号は別のにしないとダメ? 交互に起動すれば出来ると思ったんだけど、できなかった。
7 : >>6 ポートは別にした方が無難。 同じポートを使いまわす場合は、ソケットオプションのreuse-addrを有効にしないと、 サーバが終了しててもしばらくの間はそのポート番号が使えない事がある。 grep してみたところ、djangoにそれっぽいオプションはなかった。
8 : 22 Dec django 1.4 alpha 1 released ttps://docs.djangoproject.com/en/dev/releases/1.4-alpha-1/ Porting 2.x code so that it runs on 2.x and 3.x from a single codebase ttps://code.djangoproject.com/wiki/PortingNotesFor2To3 Proposal: drop Python 2.5 support in Django 1.5 ttp://groups.google.com/group/django-developers/browse_thread/thread/a5e642c0e5fd6626
9 : >>7 ありがと 8000と8080で頑張るわ
10 : 補足で、ポートを分けた方がいい理由としては、もうひとつ。 同じポートだとブラウザのキャッシュのアドレスが混ざってしまい、 別アプリ側のキャッシュを読んでしまう可能性があります。
11 : ラインハルトさま
12 : googleトレンドでフレームワークの比較したしたに 密かに django の数を支えてくれてるかも知れないお方ですね(違
13 : >>11 生きる権利を行使するなら それに見合った義務を果たせ
14 : 複合キーが使えないとかアホすぎる。、
15 : 同じ汎用ビューを複数使うとPaginatorを見るときに 最後のものを参照してしまうのですがどうすればいいでしょうか? 例えばurlsのところで (r'^/A/(?P<page>[0-9]+)/$', 'django.views.generic.list_detail.object_list', dicA), (r'^/B/(?P<page>[0-9]+)/$', 'django.views.generic.list_detail.object_list', dicB), としたときに A/1/のところでPage.next_page_number()を見ると B/2/に飛んでしまいます。
16 : djangoって2chじゃぜんぜん盛り上がってないですね
17 : >>16 基本的に仕事ないからな
18 : pythonで仕事できる会社少ないイメージあるね。 一度はpythonで食ってみたいもんだが。
19 : あまりに過疎りすぎるとフレームワークやらライブラリが発展しなくなるのが心配。 海外ではそれなりに活性化されてるのかな?
20 : 日本はjavaかphpだけだよな pythonのwebフレームワークはdjangoが一番無難とおもう
21 : Djangoのルールに乗っかれないとバッドノウハウの塊になっちゃうのがなぁ。 (認証でUserテーブルを独自に定義したい場合とか) 他にいいフレームワークないですかね。 Flaskって奴もよさそうだけど、ちょっと軽量すぎる・・・ TurboGearsはどうなんだろう。 それとも素直にRailsとかCakePHP使っとくべきですかね。
22 : Pylonsってのもあるのか。
23 : pylonsはオワコン pyramid
24 : >>21 werkzeug
25 : >>21 それはどんなフレームワークでも同じじゃね?
26 : django-cmsって使ってる人いる?
27 : サーブレットのように、あるリクエストで生成したインスタンスを レスポンスが完了した後も残しておくことって出来ないですか? 出来ない場合、同じようなことをやろうと思ったらキャッシュ機能を 使うしかないですかね? キャッシュだとシリアライズのコストの分が余計にかかるので できればサーブレットのようにプロセスが常駐してインスタンスを そのままメモリ上に持たせておきたいと思ったのですが・・・
28 : タコですが質問です。 djangoって静的ファイルはhttpdでやれよって思想だと思うんですが、 セッション管理によるアクセス制限 (例えばdjangoでログイン中のみapacheから静的ファイルにアクセスできるようにする) っていう仕組みはどのように実装したらいいんでしょうか?
29 : >>27 私はタコですがセッションのどこかに放り込んでおけばいいのでは? http://docs.nullpobug.com/django-doc-ja/trunk/topics/http/sessions.html#topics-http-sessions
30 : >>27 memcached
31 : この本読んだひといますか? 感想聞かせてください WSGIウェブプログラミング ttp://www.amazon.co.jp/dp/4877832882/ 書評悪すぎてわろす
32 : URLディスパッチャがめんどくさすぎる
33 : >>28 djangoの「思想」は無視すればいいと主受け尾d。 URLに対応するファイルを読み込んでユーザチェックで分岐して renderする処理を加えればいいだけじゃないの。 簡単にできるでしょう。
34 : 主受け尾d、ってなんだ・・タイポした なお、djangoのstatic拒否っていう「思想」は別に珍しくなくて、 ホントにstacicならサーバにまかせます、っていうだけでしょ。 日本語の1.0 documentation読んでるとなんかすげー厳しいなあと思うかも知れないけど 1.3documentationの https://docs.djangoproject.com/en/dev/howto/static-files/ を読めば1.0にはなかった django.contrib.staticfiles っていう仕組みもある。
35 : Modelから作るフォーム、ModelFormで初期値を設定する事はできませんか? -- model.py class Shops(models.Model): id = models.IntegerField(primary_key=True) shop_name = models.CharField(max_length=765, verbose_name=u"店舗名称") class ShopDetails(models.Model): shop = models.ForeignKey(Shops,primary_key=True, verbose_name=u"店舗名称") prefecture = models.ForeignKey(Prefectures, verbose_name=u"都道府県") こういう二つのモデルがあって、ShopDetailsのフォームを -- forms.py class ShopDetailForm(ModelForm): class Meta: model = ShopDetails exclude = ('shop',) として、定義してます。 /shops/detailadd/12/ とかでidが12番を指定されている時は いちいち、shopを選ぶフォームを出力したくないので 既にshopの中身に12番を入れておきたいのですが… 伝わりにくい質問でごめんなさい。
36 : defaultとかあったと思うが,Metaでやるとできないか JavaScriptでやるか,12をテンプレートでレンダ
37 : >>36 さん レスありがとうございます。 <input type="hidden" name="shop" value="{{ shop_id }}> みたいなテンプレートでやってみたんですが、Validateでエラーになってしまったもので... Djangoマニュアルの英語版も読んだんですが、こういうところが書かれてないんですよねぇ。 どこかノウハウが集まってるサイトとかないんでしょうか。 みなさんはDjangoの情報収集はどこでされてますか? GoogleのDjangoグループは全然更新されてないんで、困ってます...
38 : たしかフォームクラスの__init__()でself.fields["fieldname"]に値いれればいけたと思う この例だと class ShopDetailForm(ModelForm): class Meta: model = ShopDetails exclude = ('shop',) def __init__(self, *args, **kwargs) shop_id = kwargs.pop( 'shop_id', None ) super( ShopDetailForm, self ).__init__( *args, **kwargs ) self.fields["shop"] = shop_id かな shop_idを与えてShopDetailFormを呼ぶ形で
39 : ごめん嘘書いてた class ShopDetailForm(ModelForm): class Meta: model = ShopDetails def __init__(self, *args, **kwargs) shop_id = kwargs.pop( 'shop_id', None ) super( ShopDetailForm, self ).__init__( *args, **kwargs ) if shop_id: self.fields["shop"].initial = shop_id なんしかself.fields["hoge"]をイジれば動的にフィールドを操作できます
40 : Django1.2を使ってます テンプレートの使い方で質問していいでしょうか? ちょっと困ってます dataA.dataB[0].dataC を取り出す方法です。 [0]という表記がシンタックスエラーを出すので調べたらスライスフィルタを使えと dataA.dataB|slice:"0:1" これだとdataBは取り出せますがここから詰まってます どうか解決法をご存知の方ヒントをお願いします。 方法がなければデータそのものを加工して対処します。
41 : 簡単なマッパーかますのが一番楽じゃないかな http://tokibito.bitbucket.org/bpmappers/ これとかオススメ
42 : うわーー 最初からこれ使えばよかったーーー
43 : テーブル生成についての質問なのですが djangoでテーブルを動的に生成することってできますか? ユーザ情報(これはカラム固定)がDBに入っていて そこからある計算を行ってデータを作るのですが それがカラム数が動的に変わってしまうのです 要するに動的に create を発行すればいいのですが djangoの場合だとモデルクラスが対応してないとダメですよね… というよりモデルクラスが先にあって、そこからテーブルを 作成するのが基本ですよね… なにかうまい方法はないでしょうか…? (すみませんが設計で回避というのは無しでお願いします)
44 : 発想を変えて動的にモデルをつくるようにしてみては? モデルのプロパティはJSONとかにシリアライズしてblobで保存とか MongoDBとかでも動的に変更できるけど茨の道
45 : いよいよDjango1.4正式版でるね
46 : なにが変わるの?
47 : 結構機能追加されてんね 1.3のデータベース周りの大幅アップデートに比べると霞むけど テンプレートタグのelifは有難すぎ
48 : djangoが楽すぎて他のフレームワークいじる気力なくなる
49 : django使ってるのって、日本で10人ぐらい?
50 : すごい優れたフレームワークだと思うので実践投入しようとしてるんだけど。 和書は1.0前のしかないし、Django Book 2.0すら和訳途中で頓挫してるし… Googleグループも過疎ってるし。日本語で情報共有できないのが辛い。 英語だけどKindleの電子書籍はいっぱい売ってるし、海外フォーラムでは話題が多いんだよね。 逆に、今なら日本語Django界で名を挙げるチャンスなの?w githubとかでもいいからDjango使っているプロジェクトとかソースコード読んで参考にしたい。 誰か情報共有してくれー!
51 : そもそもPython使ってる人が日本に20人ぐらいしかいないから。
52 : 俺もいるから21人だな
53 : いや、お前入れて20人だから
54 : こういう地域による過疎フレームワークってどうやって情報共有すればいいんだろうね
55 : 英語読めれば問題ない
56 : 電気無ければただの箱的な?
57 : Django使うような奴らは国内なんかが住処じゃねーって!? 日本じゃ王道はRubyでRails。 Pythonなんかインデント言語って馬鹿にされて、 日本じゃ誰も評価されないDjango使う馬鹿は相手が世界ってことか? 面白いじゃないの!実践投入させてもらうぜ!
58 : 世界目指そうぜ
59 : ケータイサイトとか作るんじゃなければいいかもね。 今さらケータイサイトとか作ってる場合じゃないけどな。
60 : ええと… class input_data: class output_data: class hoge: def calculate(input_data data): return output_data djangoとは別にこんなモジュールがあったとして(これ自体はcui上で動く)、これをdjangoを使って webアプリにしたいんですが、その場合にinput_dataとoutput_dataをDB経由で処理するには どうしたらいいでしょうか? hogeはviews.pyから呼べばいいと思いますが、input_dataとoutput_dataは、これらと全く同じ モデルクラスを作り直すしかないですかね でもそうなると結局hogeも作り直す必要がありますよね・・・・ できれば既にあるソースを流用したいんですけど、そういうことをするにはdjangoでは無理ですか? (ORマッパーがモデルクラスと一体化してるというか) 何かいいアイデアあったら教えてください m(_ _)m
61 : django用にクラス作りなおすしかないんじゃないかな
62 : モデルの中にdataクラスいれるのが単純かなぁ。(コンポジション?) モデルにdataクラスへの入出力追加するだけだし。
63 : >>62 > モデルの中にdataクラスいれるのが単純かなぁ。(コンポジション?) > モデルにdataクラスへの入出力追加するだけだし。 すみません、具体的なイメージが湧かないのですが 例えばinput_dataが class input_data: def __init__(self, name, value): self.name = name # string self.value = value # integer こんなクラスだとしたら、これをプロパティにしたモデルクラスって 具体的にどうなるんでしょうか?
64 : データベースへのアクセスはdjangoのORMを使うの? それとも別に用意されてるの?
65 : >>64 ORマッパーが先に決まっているわけではないです djangoのモデルクラスを利用して既にあるデータクラスを そのまま使える方法があれば一番いいですし それが無理そうなら別の方法を考える、という感じです。 昨日調べてたらSQLをそのまま発行することは出来るみたいなので、 資産の有効利用を優先するならそれもありかな、と少し考えています。
66 : カスタムマネージャでなんとかなるかも マネージャをゴリゴリ書く必要あるけれども ただちっと面倒くさいよね何やるにしても
67 : 寛解に至らない
68 : 偉い人へ: djangoforms の BooleanField で checkboxを出すとHTMLが、 「ラベル □」になちゃうんだけど、「□ ラベル」にするのってどうやるの?
69 : 自分はその辺の面倒くさいところテンプレートでやってる widgetを書く方法もあるけどテンプレートの方がしっくりくる class Hoge(Model): name = BooleanField() のモデルがあるとしてこのモデルフォームのテンプレート変数名がformだとした場合 {% for field in form %} <label>{{ field.label}}</label>{{ field }} みたいな感じで自由に組める あとはHTMLとCSSでお好きなように この辺も参考にしてみて ttps://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#customizing-the-form-template
70 : >>69 自分でテンプレートに展開するのって自由で素敵ですね。 トライしてみます。偉い人ありがと。
71 : 他のスレで質問したところ、こちらへ誘導されました: http://kohada.2ch.net/test/read.cgi/php/1302598469/725-726 以下、上記URLより再掲です。 --- スクリプト の import と テンプレートの extends とがそれぞれよくわかっておらず、ファイルの置き場所がごちゃごちゃになってしまいます。整理するにはどうすればよいでしょうか。 問題点 ● テンプレートの多重継承がうまくできない operation1.html で {% extends "../master.html" %} master.html で {% extends "../base.html" %} とすると base.html が見つからなくなります。どうやら孫にあたる operation1.html からの相対パス ../base.html を探しているようです。 ・ テンプレート内の記述を変えずに問題を解決する方法があれば教えてください。 ・ django は 最初のバージョンのみでよいので、右記ページのような問題はありません。 http://stackoverflow.com/questions/5263623/templatedoesnotexist-on-python-app-engine-django-1-2-while-template-rendering-re ● import の書き方がわからない 大雑把にいって handler の中身が Controller, libs の中身が Model にあたります。 main.py で handlers1.py を、handler1.py で user_auth.py を、それぞれ import したいです。 ・ import 文の書き方を教えてください。__init__.py が必要になるのであれば、内容も教えてください。
72 : ファイル構成は下記のようにする予定です: - app.yaml - main.py - handlers - - handler1.py - - handler2.py - libs - - user_auth.py - - main_datastore.py - template - - base.html - - master - - - master.html - - - operation1 - - - - operation1.html ...
73 : 相対じゃなくて絶対でやるといいよ 相対 {% extends "../master.html" %} 絶対 {% extends "master/master.html" %} でsettings.pyのTEMPLATE_LOADERSに 'django.template.loaders.app_directories.Loader', これがついてると各アプリケーション・ディレクトリ内にあるtemplatesというディレクトリを探して"master/master.html"という記述ができるようになります 例:アプリケーション名"app_name"を持つdjangoのディレクトリ構造 app_name - templates (アプリケーション・ディレクトリ内のテンプレート置き場) - - app_name - - - master.html templates (プロジェクト全体で参照するテンプレート置き場) - base.html master.htmlからbase.htmlを継承するには、master.html内に{% extends "base.html" %}でok このようにアプリケーション毎に分離しextendsしていくと綺麗に分離できるよ
74 : importに関してはhandlersディレクトリとlibsディレクトリ両方に__init__.pyが必要 さらにmanage.pyにlibs/handlersを参照できるように以下を記述 import os import site import sys ROOT = os.path.dirname( os.path.abspath( __file__ ) ) path = lambda * a: os.path.join( ROOT, *a ) prev_sys_path = list( sys.path ) site.addsitedir( path( 'handlers' ) ) site.addsitedir( path( 'libs' ) ) new_sys_path = [] for item in list( sys.path ): if item not in prev_sys_path: new_sys_path.append( item ) sys.path.remove( item ) sys.path[:0] = new_sys_path で各ファイルでのimportを以下のように行える main.py from handlers import handler1 handler1.py from libs import user_auth 検証してないけどこんな感じだよ
75 : それとdjangoの基本的なディレクトリ構造は project_name - app_name - - models.py - - views.py - - urls.py - - templates - templates - manage.py - settings.py - urls.py となってますので、可能であればhandlers内とlibs内のそれぞれの1と2を別アプリとして分離し作っていくのがあとあと楽と感じます project_name - app1 - - models.py(user_auth.py) - - views.py(handler1.py) - - templates - - - app1 - - - - app1.html - app2 - - models.py (main_datastore.py) - - views.py (handler2.py) - - templates - - - app2 - - - - app2.html - templates - - base.html
76 : >>73-75 回答ありがとうございます。今夜ためしてみます。
77 : なんか馬鹿みたいな質問なんですけど djangoでwebアプリを作ったときに 定数とか設定ファイルみたいなものを用意して webサーバー起動時にそれを一度だけ読み込んだら アプリが終了するまではその値をいつでも参照できるように しておくことってできないですか? ちなみにwebサーバーはapacheを使ってます (apacheとdjangoをmod wsgiで連携)
78 : そいうのはsettings.pyに書いとくといいです settings.pyにHOGE="hoge"としておくと from django.conf import settings settings.HOGE と言った感じで参照できます
79 : なるほど! ありがとうございました!
80 : gae/p の blobstoreで、アップロードのついでに POSTした日本語が文字化けする障害って まだ直っていないようですね・・ 何年か前に Google-App-Engine-Japanに障害報告が上がってるのに。 仕事遅いなぁ中の人。 この障害への回避策って、Base64エンコードぐらいでしょうか?
81 : gaeでdjango使うのしんどくない?
82 : >>81 何とか使ってます。
83 : 超伸びてるし… >>34 ありがとうございました
84 : phpディスられてる割りにユーザ増えんね…
85 : 日本だとrubyに流れるんだろうね 2.x系は日本語の扱い面倒くさいし
86 : ruby使ってる人=はてな民=常に上から目線みたいなイメージがあって、どうもrubyに触手が動かない
87 : >>84 戦車に例えると PHP4はT34/76 PHP5はT34/85 Railsはパンター DjangoはタイガーI って感じだからな。 JavaとかASP.NETはM4と言うか米軍
88 : >>87 例えがむつかしい。
89 : 言語とフレームワークごちゃまぜなのがいただけない
90 : >DjangoはタイガーI 重そうww 喩えが非常に良くないw
91 : >rubyに触手が動かない ひどい偏見ながらbeginとかendとか見た時にMSのマクロ系連想しちゃって受け付けなかった pythonってweb以外にも科学技術計算とか沢山あるしね 数の暴力でアホみたいにライブラリ充実させて、負けることは絶対無いと思う googleさんもいるし…
92 : begin end はPascal系だろ
93 : 1.4文書にはリリースするならmod_wsgi使えって書いてあるね ttps://docs.djangoproject.com/en/1.4/topics/install/
94 : 1.4でstartprojectしたら project -manage.py --project ---settings.py ---wsgi.py みたいになっててちょっと焦った manage.pyの処理もちょっと変わったみたいで過去のプロジェクトそのままじゃ動かんかった あとrunserverもwsgi指定できんのかな settings.WSGI_APPLICATIONとかオプション出来てる あとで調べてみよ
95 : mod_wsgiだとDjangoがなぜかApacheで走らなくて mod_pythonで動かしてる俺にはヤバいニュースだな。 ドキュメント通りにインスコしても何も表示されないんだよなー。
96 : nginx+uwsgiマジオススメ
97 : >>94 と>>95 の時刻逆になってるぞ mod_wsgi系の設定はここにかいてあるっぽい ttps://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/
98 : >>94 と>>95 の時刻逆になってるぞ ↑ 勘違いでした^^;
99 : 1.4かなり変わってんだな urlテンプレートタグとGeneric View直すの面倒かった
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
PHP初心者勉強会やらんかね! (474)
Namazu全文検索システム (364)
Servlet (152)
■最強の系サイト作ろうぜ!■ (170)
何も分からん俺がPHPでWEBサイトを作るスレ (141)
PHPBB (750)
--log9.info------------------
モーレツ宇宙海賊 (170)
キルミーベイベー (727)
とらぶる第二部放映決定!!!!!!!!!!!! (134)
プリティーリズム (309)
「君に届け」の2期キタ━━━━(゚∀゚)━━━━ !!!!! (118)
未来日記 2 (173)
GOSICK―ゴシック― お菓子3箇目 (264)
神様のメモ帳2 (318)
【武田弘光】マケン姫っ!―MAKEN-KI!― (837)
パパのいうことを聞きなさい! (645)
SKET DANCEアニメ化計画 (427)
Dororonえん魔くんメ〜ラめら! (399)
青の祓魔師 アニメ化決定! 2 (328)
ダンボール戦記 (136)
ぬらりひょんの孫 アニメ化決定!!!!第五幕 (860)
Kiss×sis キスシス (145)
--log55.com------------------
介護職に巣食うクズの特徴
【臭肛門】介護を辞めたい 68R目【臭R】
はかない夢で終わる 淑徳大学
相談支援専門員について
【職員】介護福祉士の実習【利用者】
◆◆シンワオックス◆◆
知的障碍者施設の生活介護、生活支援員やってる人
介護職に就いた理由は何ですか