【Python】Webフレームワーク Djangoスレ Part2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/12/15(木) 23:47:02.03ID:???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
0002nobodyさん
2011/12/15(木) 23:47:31.14ID:???何度も落ちてるのでまた落ちると思うけどよろすく
0003nobodyさん
2011/12/18(日) 22:42:56.54ID:???0005nobodyさん
2011/12/19(月) 23:04:09.58ID:???Turboの方がいいとか前聞いたことあったけど、やっぱDjangoなのか
速度も速いし、ライブラリのように使えて便利とか聞いて、そうなのかと思った記憶がある
0006nobodyさん
2011/12/26(月) 11:41:05.70ID:???交互に起動すれば出来ると思ったんだけど、できなかった。
0007nobodyさん
2011/12/26(月) 12:40:03.88ID:???ポートは別にした方が無難。
同じポートを使いまわす場合は、ソケットオプションのreuse-addrを有効にしないと、
サーバが終了しててもしばらくの間はそのポート番号が使えない事がある。
grep してみたところ、djangoにそれっぽいオプションはなかった。
0008nobodyさん
2011/12/26(月) 14:56:38.54ID:???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
0010nobodyさん
2011/12/26(月) 15:48:49.02ID:???同じポートだとブラウザのキャッシュのアドレスが混ざってしまい、
別アプリ側のキャッシュを読んでしまう可能性があります。
0011nobodyさん
2011/12/27(火) 06:06:43.86ID:???0012nobodyさん
2011/12/27(火) 19:32:02.12ID:???密かに django の数を支えてくれてるかも知れないお方ですね(違
0014nobodyさん
2012/01/03(火) 09:37:05.06ID:???0015nobodyさん
2012/01/04(水) 21:31:19.42ID:???最後のものを参照してしまうのですがどうすればいいでしょうか?
例えば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/に飛んでしまいます。
0016nobodyさん
2012/01/08(日) 19:07:42.92ID:???0018nobodyさん
2012/01/10(火) 00:56:59.16ID:???一度はpythonで食ってみたいもんだが。
0019nobodyさん
2012/01/14(土) 12:34:09.69ID:???海外ではそれなりに活性化されてるのかな?
0020nobodyさん
2012/01/15(日) 16:43:29.95ID:???pythonのwebフレームワークはdjangoが一番無難とおもう
0021nobodyさん
2012/01/21(土) 04:24:28.26ID:???(認証でUserテーブルを独自に定義したい場合とか)
他にいいフレームワークないですかね。
Flaskって奴もよさそうだけど、ちょっと軽量すぎる・・・
TurboGearsはどうなんだろう。
それとも素直にRailsとかCakePHP使っとくべきですかね。
0022nobodyさん
2012/01/21(土) 04:47:17.81ID:???0023nobodyさん
2012/01/21(土) 07:22:45.45ID:???pyramid
0026nobodyさん
2012/02/07(火) 23:14:28.71ID:???0027nobodyさん
2012/02/09(木) 22:59:21.30ID:lRLr0cSKレスポンスが完了した後も残しておくことって出来ないですか?
出来ない場合、同じようなことをやろうと思ったらキャッシュ機能を
使うしかないですかね?
キャッシュだとシリアライズのコストの分が余計にかかるので
できればサーブレットのようにプロセスが常駐してインスタンスを
そのままメモリ上に持たせておきたいと思ったのですが・・・
0028nobodyさん
2012/02/09(木) 23:21:54.04ID:/iRWC1gwdjangoって静的ファイルはhttpdでやれよって思想だと思うんですが、
セッション管理によるアクセス制限
(例えばdjangoでログイン中のみapacheから静的ファイルにアクセスできるようにする)
っていう仕組みはどのように実装したらいいんでしょうか?
0029nobodyさん
2012/02/09(木) 23:24:12.52ID:/iRWC1gw私はタコですがセッションのどこかに放り込んでおけばいいのでは?
http://docs.nullpobug.com/django-doc-ja/trunk/topics/http/sessions.html#topics-http-sessions
0031nobodyさん
2012/02/17(金) 18:11:15.99ID:???感想聞かせてください
WSGIウェブプログラミング
ttp://www.amazon.co.jp/dp/4877832882/
書評悪すぎてわろす
0032nobodyさん
2012/02/19(日) 09:53:00.31ID:???0033nobodyさん
2012/02/20(月) 09:54:33.74ID:???djangoの「思想」は無視すればいいと主受け尾d。
URLに対応するファイルを読み込んでユーザチェックで分岐して
renderする処理を加えればいいだけじゃないの。
簡単にできるでしょう。
0034nobodyさん
2012/02/20(月) 10:17:08.89ID:???なお、djangoのstatic拒否っていう「思想」は別に珍しくなくて、
ホントにstacicならサーバにまかせます、っていうだけでしょ。
日本語の1.0 documentation読んでるとなんかすげー厳しいなあと思うかも知れないけど
1.3documentationの
https://docs.djangoproject.com/en/dev/howto/static-files/
を読めば1.0にはなかった
django.contrib.staticfiles
っていう仕組みもある。
0035nobodyさん
2012/03/06(火) 19:10:17.43ID:???-- 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番を入れておきたいのですが…
伝わりにくい質問でごめんなさい。
0036nobodyさん
2012/03/06(火) 19:21:31.04ID:???JavaScriptでやるか,12をテンプレートでレンダ
0037nobodyさん
2012/03/06(火) 22:42:25.29ID:???レスありがとうございます。
<input type="hidden" name="shop" value="{{ shop_id }}>
みたいなテンプレートでやってみたんですが、Validateでエラーになってしまったもので...
Djangoマニュアルの英語版も読んだんですが、こういうところが書かれてないんですよねぇ。
どこかノウハウが集まってるサイトとかないんでしょうか。
みなさんはDjangoの情報収集はどこでされてますか?
GoogleのDjangoグループは全然更新されてないんで、困ってます...
0038nobodyさん
2012/03/08(木) 20:42:59.17ID:???この例だと
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を呼ぶ形で
0039nobodyさん
2012/03/08(木) 23:23:35.64ID:???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"]をイジれば動的にフィールドを操作できます
0040nobodyさん
2012/03/12(月) 10:05:17.14ID:C6qcHZnAテンプレートの使い方で質問していいでしょうか?
ちょっと困ってます
dataA.dataB[0].dataC を取り出す方法です。
[0]という表記がシンタックスエラーを出すので調べたらスライスフィルタを使えと
dataA.dataB|slice:"0:1" これだとdataBは取り出せますがここから詰まってます
どうか解決法をご存知の方ヒントをお願いします。
方法がなければデータそのものを加工して対処します。
0041nobodyさん
2012/03/12(月) 15:15:04.03ID:???http://tokibito.bitbucket.org/bpmappers/
これとかオススメ
0042nobodyさん
2012/03/12(月) 15:23:09.23ID:C6qcHZnA0043nobodyさん
2012/03/12(月) 23:05:19.96ID:7b+JBvuOdjangoでテーブルを動的に生成することってできますか?
ユーザ情報(これはカラム固定)がDBに入っていて
そこからある計算を行ってデータを作るのですが
それがカラム数が動的に変わってしまうのです
要するに動的に create を発行すればいいのですが
djangoの場合だとモデルクラスが対応してないとダメですよね…
というよりモデルクラスが先にあって、そこからテーブルを
作成するのが基本ですよね…
なにかうまい方法はないでしょうか…?
(すみませんが設計で回避というのは無しでお願いします)
0044nobodyさん
2012/03/13(火) 03:34:44.28ID:???モデルのプロパティはJSONとかにシリアライズしてblobで保存とか
MongoDBとかでも動的に変更できるけど茨の道
0045nobodyさん
2012/03/21(水) 00:32:52.23ID:???0046nobodyさん
2012/03/21(水) 03:08:20.87ID:???0047nobodyさん
2012/03/21(水) 15:05:16.44ID:???1.3のデータベース周りの大幅アップデートに比べると霞むけど
テンプレートタグのelifは有難すぎ
0048nobodyさん
2012/03/23(金) 17:41:38.22ID:???0049nobodyさん
2012/03/27(火) 17:54:08.18ID:???0050nobodyさん
2012/03/28(水) 07:08:10.63ID:???和書は1.0前のしかないし、Django Book 2.0すら和訳途中で頓挫してるし…
Googleグループも過疎ってるし。日本語で情報共有できないのが辛い。
英語だけどKindleの電子書籍はいっぱい売ってるし、海外フォーラムでは話題が多いんだよね。
逆に、今なら日本語Django界で名を挙げるチャンスなの?w
githubとかでもいいからDjango使っているプロジェクトとかソースコード読んで参考にしたい。
誰か情報共有してくれー!
0051nobodyさん
2012/03/28(水) 10:08:47.56ID:???0052nobodyさん
2012/03/28(水) 11:50:18.09ID:???0053nobodyさん
2012/03/28(水) 13:38:31.77ID:???0054nobodyさん
2012/03/28(水) 13:39:31.42ID:???0055nobodyさん
2012/03/28(水) 13:54:02.73ID:???0056nobodyさん
2012/03/29(木) 12:41:43.24ID:???005750
2012/03/29(木) 16:31:42.56ID:???日本じゃ王道はRubyでRails。
Pythonなんかインデント言語って馬鹿にされて、
日本じゃ誰も評価されないDjango使う馬鹿は相手が世界ってことか?
面白いじゃないの!実践投入させてもらうぜ!
0058nobodyさん
2012/03/29(木) 17:30:04.77ID:???0059nobodyさん
2012/03/29(木) 17:54:31.44ID:???今さらケータイサイトとか作ってる場合じゃないけどな。
0060nobodyさん
2012/04/01(日) 02:28:54.90ID:2batclMoclass 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
0061nobodyさん
2012/04/01(日) 19:41:26.66ID:???0062nobodyさん
2012/04/01(日) 20:24:12.51ID:???モデルにdataクラスへの入出力追加するだけだし。
0063nobodyさん
2012/04/01(日) 20:44:17.44ID:1e7s1g7e> モデルの中にdataクラスいれるのが単純かなぁ。(コンポジション?)
> モデルにdataクラスへの入出力追加するだけだし。
すみません、具体的なイメージが湧かないのですが
例えばinput_dataが
class input_data:
def __init__(self, name, value):
self.name = name # string
self.value = value # integer
こんなクラスだとしたら、これをプロパティにしたモデルクラスって
具体的にどうなるんでしょうか?
0064nobodyさん
2012/04/02(月) 08:58:12.36ID:???それとも別に用意されてるの?
0065nobodyさん
2012/04/02(月) 23:50:34.00ID:VGFPGSaKORマッパーが先に決まっているわけではないです
djangoのモデルクラスを利用して既にあるデータクラスを
そのまま使える方法があれば一番いいですし
それが無理そうなら別の方法を考える、という感じです。
昨日調べてたらSQLをそのまま発行することは出来るみたいなので、
資産の有効利用を優先するならそれもありかな、と少し考えています。
0066nobodyさん
2012/04/03(火) 00:06:10.55ID:???マネージャをゴリゴリ書く必要あるけれども
ただちっと面倒くさいよね何やるにしても
0067名無しさん
2012/04/03(火) 20:20:49.11ID:1QQjv7Jc0068nobodyさん
2012/04/05(木) 14:53:34.26ID:zbL83UyRdjangoforms の BooleanField で checkboxを出すとHTMLが、
「ラベル □」になちゃうんだけど、「□ ラベル」にするのってどうやるの?
0069nobodyさん
2012/04/05(木) 21:04:53.80ID:???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
0070nobodyさん
2012/04/05(木) 22:30:34.63ID:zbL83UyR自分でテンプレートに展開するのって自由で素敵ですね。
トライしてみます。偉い人ありがと。
0071nobodyさん
2012/04/07(土) 16:34:57.81ID:BeoWQwVe以下、上記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 が必要になるのであれば、内容も教えてください。
007271
2012/04/07(土) 16:35:33.15ID:???- 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
...
0073nobodyさん
2012/04/08(日) 01:26:13.09ID:???相対 {% 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していくと綺麗に分離できるよ
0074nobodyさん
2012/04/08(日) 01:27:37.88ID:???さらに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
検証してないけどこんな感じだよ
0075nobodyさん
2012/04/08(日) 02:13:49.24ID:???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
0077nobodyさん
2012/04/08(日) 23:48:05.79ID:Iqgx/7Sddjangoでwebアプリを作ったときに
定数とか設定ファイルみたいなものを用意して
webサーバー起動時にそれを一度だけ読み込んだら
アプリが終了するまではその値をいつでも参照できるように
しておくことってできないですか?
ちなみにwebサーバーはapacheを使ってます
(apacheとdjangoをmod wsgiで連携)
0078nobodyさん
2012/04/08(日) 23:54:59.79ID:???settings.pyにHOGE="hoge"としておくと
from django.conf import settings
settings.HOGE
と言った感じで参照できます
0079nobodyさん
2012/04/09(月) 01:35:18.14ID:8JTXJRqlありがとうございました!
0080nobodyさん
2012/04/10(火) 22:13:14.47ID:nA+GylzOまだ直っていないようですね・・
何年か前に Google-App-Engine-Japanに障害報告が上がってるのに。
仕事遅いなぁ中の人。
この障害への回避策って、Base64エンコードぐらいでしょうか?
0081nobodyさん
2012/04/11(水) 02:44:16.83ID:???0082nobodyさん
2012/04/11(水) 10:56:01.11ID:WgNPCZsm何とか使ってます。
0083nobodyさん
2012/04/13(金) 13:19:14.34ID:0/eMv/lO>>34
ありがとうございました
0084nobodyさん
2012/04/13(金) 13:23:02.97ID:???0085nobodyさん
2012/04/13(金) 23:04:56.60ID:???2.x系は日本語の扱い面倒くさいし
0086nobodyさん
2012/04/13(金) 23:40:44.62ID:???0087nobodyさん
2012/04/14(土) 00:46:37.29ID:???戦車に例えると
PHP4はT34/76
PHP5はT34/85
Railsはパンター
DjangoはタイガーI
って感じだからな。
JavaとかASP.NETはM4と言うか米軍
0089nobodyさん
2012/04/14(土) 02:51:40.51ID:???0090nobodyさん
2012/04/14(土) 02:57:17.67ID:???重そうww
喩えが非常に良くないw
0091nobodyさん
2012/04/14(土) 03:02:12.44ID:???ひどい偏見ながらbeginとかendとか見た時にMSのマクロ系連想しちゃって受け付けなかった
pythonってweb以外にも科学技術計算とか沢山あるしね
数の暴力でアホみたいにライブラリ充実させて、負けることは絶対無いと思う
googleさんもいるし…
0092nobodyさん
2012/04/14(土) 23:30:25.46ID:???0093nobodyさん
2012/04/16(月) 15:34:39.61ID:???ttps://docs.djangoproject.com/en/1.4/topics/install/
0094nobodyさん
2012/04/16(月) 21:36:37.11ID:???project
-manage.py
--project
---settings.py
---wsgi.py
みたいになっててちょっと焦った
manage.pyの処理もちょっと変わったみたいで過去のプロジェクトそのままじゃ動かんかった
あとrunserverもwsgi指定できんのかな
settings.WSGI_APPLICATIONとかオプション出来てる
あとで調べてみよ
0095nobodyさん
2012/04/16(月) 23:17:56.03ID:???mod_pythonで動かしてる俺にはヤバいニュースだな。
ドキュメント通りにインスコしても何も表示されないんだよなー。
0096nobodyさん
2012/04/17(火) 00:08:34.20ID:???0097nobodyさん
2012/04/17(火) 02:08:18.68ID:???mod_wsgi系の設定はここにかいてあるっぽい
ttps://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/
0099nobodyさん
2012/04/18(水) 00:34:32.35ID:???urlテンプレートタグとGeneric View直すの面倒かった
0100nobodyさん
2012/04/18(水) 12:43:31.07ID:Wype6WQ20101nobodyさん
2012/04/19(木) 02:40:41.54ID:???メモリリークが一目でわかる
ttps://github.com/munhitsu/django-dowser
0102nobodyさん
2012/04/19(木) 20:46:19.69ID:1eA2rign例えばUserオブジェクトに属性email、アクセサemail()があるとき
{{ user.email }} とは書けるけど {{ user.email() }} だとエラーになります。
TemplateSyntaxError: Could not parse the remainder: '()' from 'user.email()'
これはどうしてなんでしょうか。
ドキュメントにはテンプレートエンジンが.(dot)を見つけたとき以下の順で評価を試みるとあるけど
関係してるのかなんだかさっぱり・・・
辞書の照合 (lookup)=>属性の照合=>メソッドの呼び出し=>リストをインデクス指定して照合
0103nobodyさん
2012/04/19(木) 21:00:09.93ID:1eA2rignということは、テンプレートに書くときはメソッド呼び出しにカッコはつけないということなのかな。
ぐぐってたら"丸括弧を付ける必要はありません"と書いてるページがあって
曖昧ではありますが、ひとまずそのつもりで進めてみますですm(_ _)m
0104nobodyさん
2012/04/26(木) 07:06:17.63ID:RMLosHkbFormPreviewを使って、プレビュー付きの登録ページを作っています。
普通はこんな感じ↓でurls.pyに書いて呼び出しますが、
url(r'^register$', RegistFormPreview(RegistForm)),
既にDBに情報が記録されている場合、
その情報を編集できるように、こんな感じ↓の処理をさせたいと考えています。
def register(request):
try:
# DB登録済みなので編集画面を表示
profile = request.user.get_profile()
return RegistFormPreview(RegistForm(profile))
except SiteProfileNotAvailable:
# DBにないので、新規登録画面を表示
return RegistFormPreview(RegistForm())
けど、関数内からClass Based Viewを呼び出すことはできないみたい。
何か良い方法ないでしょうか?
0107nobodyさん
2012/05/09(水) 15:53:29.80ID:???良い所と悪い所を教えてください。
0108nobodyさん
2012/05/10(木) 12:15:07.36ID:???強いて言えば何か問題あったとき日本語情報沢山あるのがror
コード読んで解決するのがdjango
pythonかrubyの違いは好みだしね
0109nobodyさん
2012/05/10(木) 22:45:34.96ID:???{% for x in X %} ... {% endfor %}
の後に、もう1度
{% for x in X %} ... {% endfor %}
を記述したところ、前半は表示されるのに後半は何も表示されませんでした。1つのシーケンスは1回しか使えないのでしょうか?
0110nobodyさん
2012/05/11(金) 08:34:20.27ID:???0111nobodyさん
2012/05/11(金) 09:56:32.07ID:???0112nobodyさん
2012/05/11(金) 10:17:46.83ID:???FormフレームワークはDjangoが圧倒的に優秀
あとRailsはコマンドラインが糞遅い。
よってRailsを選択するメリットは皆無
0113nobodyさん
2012/05/11(金) 11:51:30.50ID:???そいうことやったことないから原因わからんけど同じループ回せられないならviewでレンダリングしたHTMLをテンプレートに渡してやったらどう?
render_to_stringとかで
0114nobodyさん
2012/05/11(金) 12:45:49.39ID:???0115109 / 111
2012/05/11(金) 19:43:21.59ID:???0116nobodyさん
2012/05/11(金) 21:08:24.13ID:???0117nobodyさん
2012/05/12(土) 23:49:26.94ID:Ss+1w/F4どうしたらいいですか?
0118nobodyさん
2012/05/13(日) 00:03:13.19ID:???0119nobodyさん
2012/05/13(日) 00:27:12.18ID:???0120107
2012/05/13(日) 00:33:05.88ID:???>>108
日本語の情報が少ないのはしょうがないですね。
でも公式サイトの英語のドキュメントは丁寧に書かれている気がする。
>>112
DjangoはMVCのViewの部分が使いやすいってことですか?
Rails遅b「ってのは聞いbスことがありまbキ。
大部封ェはRubyの原因bゥもしれないけbヌ。
>>118
俺もDjangoこれからだけど素直に最新の1.4でいいんじゃないの。
覚えてる間に次のバージョンでるでしょうw
0123nobodyさん
2012/05/13(日) 22:00:06.06ID:XIq+bFUq(巨大な)オブジェクトをメモリ上に共有する方法ってないですか?
オブジェクトが小さければキャッシュ機能でmemcachedを使う
というのが良さそうですが、非常に大きい(数ギガ)オブジェクトを
共有したいのです
(memcachedだとオブジェクト一つのサイズには上限があるので
無理だと思ってるのですが、そんなことないですか?)
小さなオブジェクトが大量にあるのではなく
一つの巨大なオブジェクトというのが外せない条件になってます。
具体的な上限もなくて、システム上に展開できるサイズなら
何Gでも利用したいとなっています。
やりたいことのイメージは
「データを加工せよ」というリクエストを一回だけ発行して(この処理は遅くてもいい)
それ以降は
「加工したデータをグラフAにして描写」
「加工したデータをグラフBにして描写」
「加工したデータを更に加工」
というリクエストを発行
というものです。
この加工データが巨大なオブジェクトになっていて
複数のリクエストに対して高速に処理するために
メモリ上に共有させておきたいのです
何か上手い方法ないでしょうか?
0124nobodyさん
2012/05/13(日) 23:10:09.79ID:???共有ストレージの考えだとネットワークI/Oがネックになるし排他も面倒だから
加工処理用にバックエンドサーバを設けるのがシンプルかな。
んでキューでなげるようにすれば「データを加工せよ」ってのもフロント自体はすぐ返せるし、
バックエンドのクラスタ化も容易。
あとはフロントでキャッシュさせるなりチューニングしていくかんじ。
0125nobodyさん
2012/05/13(日) 23:39:37.00ID:XIq+bFUq不勉強で申し訳ないのですが
キューというのはメッセージ・キューイングと呼ばれる機能のことでしょうか?
具体的なイメージがよくわかってないのですが、仮にやりたかったことを
加工リクエスト
APPサーバがDBからデータ取得
取得したデータを加工
加工データを保持(この方法がわからなかった)
結果(加工しましたというメッセージ)をレスポンス
グラフAの描写リクエスト
APPサーバが保持されていた加工データをグラフ化
結果(グラフ)をレスポンス
として書いた場合、124さんの方法はどのような流れになるのでしょうか?
加工データ自体はAPPサーバとは別に立てたバックエンドサーバに保持
するということですか? またその場合、加工データは異なるリクエスト間で
共有されるのでしょうか?
質問ばかりですみません
0126nobodyさん
2012/05/14(月) 09:28:20.64ID:???> 加工データ自体はAPPサーバとは別に立てたバックエンドサーバに保持
そう。仮に物理サーバはいっしょでも論理的に役割分担させる。
保持はGBオーダなデータ加工だし、mmapにしとけばファイルにも逃がせられる。
> するということですか? またその場合、加工データは異なるリクエスト間で
> 共有されるのでしょうか?
フロントへの加工リクエストに対して同じ対象の描写リクエストがだせるってことは
なんらかの識別子が存在してるはずで、バックエンドでも同様にやればなんとでもできる。
0127nobodyさん
2012/05/14(月) 12:26:51.96ID:???1.4から日付周りが変わってるから後々面倒なことになりたくなかったら1.4がいいよ
あと多対多のインスタンスもjoinするprefetch_related()とかもあって1.4を選ばない理由がない
generic viewがクラスベースになり、日本語サイトを参考に出来ないのがちょっとハマるかもしれないけど
0128nobodyさん
2012/05/15(火) 21:42:51.74ID:???0129nobodyさん
2012/05/16(水) 00:11:15.40ID:???返信遅れました
正直まだ理解できてない部分があるのですが
何とかがんばってみます
(オブジェクトがリクエスト間で共有できるということは
バックエンド用のプロセスが新たに走っている
ことになるのですよね?)
もし「ここを見ればいい」というサイトがあれば
教えていただけるとありがたいです
0130123
2012/05/16(水) 00:17:58.30ID:???http://d.hatena.ne.jp/yuku_t/20101018/1287391988
これを見た感じだとデータを保有しておくというよりは
文字通りジョブ(処理)を投げておいてバックエンドで実行させて
処理が終わり次第結果が返ってくるという印象を持ったのですが、
本来はそういう意図だとしても使い方を工夫することでストレージ
のように利用することも出来る、ということでしょうか
0131nobodyさん
2012/05/29(火) 23:13:19.69ID:???0132nobodyさん
2012/05/31(木) 21:16:34.98ID:???0133nobodyさん
2012/06/01(金) 02:05:04.95ID:???utf8mb4対応くるだろうか
0134nobodyさん
2012/06/17(日) 15:42:24.03ID:VLPHimKQなぜ表示されないのでしょうか(htmlファイル等はバグ等なく作成済み)
eclipse 3.7.2
django 1.3.0
0135名無し
2012/06/18(月) 10:55:27.84ID:AXkhynzr楽しめる人気の占い発見しちゃいました。
いくつか質問に答えるだけであなたにピッタリの人がわかっちゃう。
気になったかたはチェックしてみてね。
http://232bs7.info/2/
0137nobodyさん
2012/07/07(土) 15:38:34.13ID:KIWI0EBX管理画面にmodelsに定義したクラスが表示されなくなってしまって
とりあえずadmin.pyのほうをmodels.pyと同じフォルダに移したら
また表示されるようになったんだけど
admin.pyとmodels.pyって必ず同じフォルダい入れてないとダメなの?
admin.site.register(SampleModel, SampleAdminCls)
これを
admin.site.register(hoge.SampleModel, SampleAdminCls)
みたいにしても意味なかった
0138nobodyさん
2012/07/19(木) 00:34:40.11ID:???な?・・・
0139nobodyさん
2012/07/19(木) 20:17:21.87ID:???0140nobodyさん
2012/07/25(水) 01:35:10.73ID:???例えば、メールアドレスでログインさせたい時とか、
ユーザー登録フォームを複数ページに分割させて
最後にプレビュー表示&メール認証させるとか、
よくあるシステムを構築するのに一苦労する。
0141nobodyさん
2012/07/25(水) 01:43:35.48ID:???年と日は数字だけのSelectなのに、
月の部分だけは「○月」とか表示されるし、
サクっとできて欲しい機能がいまいち不完全。
情報共有したがらないPython使いの気質のせいか?
0142nobodyさん
2012/07/25(水) 13:22:49.19ID:???Djangoはその点Railsよりマシなはずなのに、情報自体少ない。
Djangoの情報が溢れれば楽なのにな
0143nobodyさん
2012/07/27(金) 16:53:31.64ID:cxcs/EZnescで逃げちゃってるからきっとadminサイト入れない。
0144nobodyさん
2012/07/28(土) 15:55:26.49ID:???DjangoとSQLのバージョン書こう
つうか、設定ファイルに書けばよくないか
0145nobodyさん
2012/08/09(木) 00:46:11.95ID:CMriqrOl現在、勉強がてらにユーザ認証を行う掲示板のようなものをつくろうと考えています。
Modelとしましては、Entryクラスがあり、その中に
・書きこみ日時
・タイトル
・本文
・書きこみユーザ
という情報を持たせたいのですが、書きこみユーザはどのようにフィールドを設定すればいいのでしょうか?
まだ勉強中なのですが、認証にはDjangoのauthモジュールを使おうかと考えているのですが、そのauthモジュールの書きこみユーザとの連携方法がわかりません。
よろしくおねがいします。
0146Wob9w
2012/08/09(木) 02:00:17.11ID:???HOFj4DjMraDFpyM
133941476137733アメフトォ(大嘘) そして面接へ
0147nobodyさん
2012/08/24(金) 00:33:32.43ID:???request.userからユーザーオブジェクト拾って入れる
ForeignKey(django.models.auth.models.User)でいいと思うけど
ttp://djangoproject.jp/doc/ja/1.0/ref/request-response.html#django.http.HttpRequest.user
0148nobodyさん
2012/08/31(金) 05:50:33.79ID:???django、良いフレームワークなのに
なんでこんなに人少ないんだ?
そんなにPython使いが少ないのか、
そんなにPHPが便利すぎるのか。。
0149nobodyさん
2012/08/31(金) 19:16:38.98ID:vOsjd0I60150nobodyさん
2012/09/03(月) 10:36:41.32ID:SqdE+p9Qhttp://docs.nullpobug.com/django-doc-ja/trunk/ref/models/fields.html#django.db.models.ImageField.height_field
このページの説明では何を言っているのかよくわかりませんでした。
0151nobodyさん
2012/09/08(土) 09:07:34.56ID:???0152nobodyさん
2012/09/09(日) 12:55:38.23ID:So5recQR0153nobodyさん
2012/09/10(月) 10:18:25.23ID:SzEanAFyブラウザのクッキーファイルが漏れて、セッションIDが奪われた時の対策としてどのようなものがあるか調べております。
0154nobodyさん
2012/10/01(月) 09:36:29.13ID:Yqd8lXeW0156nobodyさん
2012/10/02(火) 13:29:26.30ID:???0157nobodyさん
2012/10/07(日) 11:17:06.65ID:???> 日本でPython使ってる人なんて300人ぐらいしかいないもの
お前ら一人ひとりがこの精鋭たちなんだな……
http://www.youtube.com/watch?v=CFZiil0DfMc
0158nobodyさん
2012/10/22(月) 23:38:00.87ID:???nginxとgunicornをネットではよく見かける
0159nobodyさん
2012/10/25(木) 14:49:20.54ID:???俺も知りたい。
nginxにしようか無難にapacheのままにしとくか迷ってる。
DBはPostgresが主流なのかな。
0160nobodyさん
2012/11/15(木) 09:02:26.77ID:O5OuIbETそこで1点悩んでいる部分があるのですが、現在制作しているサイトはPHPで制作しており、アクセス毎に携帯電話、スマートフォン、PC、IE6-8を切り替えて表示していたのですが、Djangoではこのようなアクセスの振り分けはどのように行うのが一般的になるでしょうか?
urls.pyに/sp/indexや/i/index等をはさみアクセスURL毎に端末を振り分けるとなると、Viewが端末毎に必要になりそうですし、全てのViewの中で端末のUAで振り分けるとViewの1メソッドが大きくなるのではないかと思っています。
携帯電話向けサイトだとAjaxなどが使えないためPCと遷移も変わるので、前者がいいのかとも考えているのですが、検索した際に携帯電話からPCサイトにアクセスすると見えなくなってしまうとも考えています。
私の考えをただ書かせて頂きましたが、一般的な方法や工夫されている方法などあれば教えて頂ければと思います。よろしくお願い致します。
0161nobodyさん
2012/11/21(水) 21:48:36.75ID:???語ることすらないわ
0162nobodyさん
2012/11/22(木) 00:15:52.74ID:???0163nobodyさん
2012/11/22(木) 01:17:16.06ID:???フレームワークは3系に対応するまで覚える気になれません。
web2pyの対応を待ってるんだけど、Djangoはもう対応したのですか?
0164nobodyさん
2012/11/22(木) 02:32:21.53ID:???0165nobodyさん
2012/11/28(水) 13:22:36.30ID:???http://blog.madoro.org/mn/84
0166nobodyさん
2012/11/29(木) 14:03:21.70ID:???0167nobodyさん
2012/11/29(木) 19:16:21.88ID:???0168nobodyさん
2012/11/30(金) 08:04:28.86ID:???そうなると、スクリプトを設置する際に、syncdbしたあとに書きこみスクリプトを実行し、そのあとにスクリプトを動かす必要があるという事でしょうか?
0169nobodyさん
2012/11/30(金) 16:25:00.13ID:???0170nobodyさん
2012/12/01(土) 11:24:52.03ID:???逆に質問だけど
あなたが Django 使う前はどういう方法で DB の初期値を作っていましたか?
0171nobodyさん
2012/12/01(土) 11:59:08.01ID:???データだけ空(または必要最小限な初期値のみ&もちろんインデックスも最初から)に戻して
うpしてくれる機能があると便利かな、とは思う。
0172nobodyさん
2012/12/01(土) 15:45:47.56ID:???胸熱
0174nobodyさん
2012/12/18(火) 07:32:04.58ID:???0176nobodyさん
2012/12/20(木) 08:11:54.79ID:???納品してしまったら、こちらからはシステム以外のメンテナンスを余りしなくてもいいようにしたいです。
0177nobodyさん
2012/12/26(水) 17:54:39.43ID:???複数のデータベースを使った実験をしようと、
http://www.ianlewis.org/jp/django-model-other-db-memo
こちらを参考に特定のモデルの振り分けを試してみたのですが、
django.core.exceptions.ImproperlyConfigured: Error importing database router TestRouter: "cannot import name connection"
というエラーが出てしまいます。
検索すると、
http://stackoverflow.com/questions/11452837/django-database-router-cannot-import-name-connection
ここがみつかり、DATABASE_ROUTERSの上の行に
from django.db import connections
を追加するとエラーが出なくなります。
ですが、setting.pyの最上部に追加すると同じエラーが出ます。
これはなぜDATABASE_ROUTERSの上の行でなければいけないのでしょうか?
0178nobodyさん
2012/12/27(木) 15:14:46.35ID:???説明していただけませんか?
0179nobodyさん
2012/12/29(土) 03:06:45.67ID:G1+BbVGH0180nobodyさん
2013/01/05(土) 18:01:55.06ID:???http://tinyurl. com/9w97424
0181nobodyさん
2013/01/07(月) 12:07:01.80ID:???UserForm( request.POST, request.FILES) のように、User登録フォームを作成しているのですが、passwordも入力された値を引き継がれるようです。これをパスワードのinputのvalueを空にしたいのですが、formsetの中身を操作するメソッドは用意されていないでしょうか?
0182nobodyさん
2013/01/09(水) 01:21:05.79ID:???form.is_validがFalseのときのエラー吐いたフォームでpasswordクリアしたいってことなら、
(TrueだったらHttpResponseRedirectを返すのがセオリーっぽいので
UserForm()には引数与えないだろうし)
javascriptのonloadイベントとかでクリアした方が楽かも。
0183nobodyさん
2013/01/12(土) 08:19:26.89ID:???0184nobodyさん
2013/01/18(金) 01:04:30.47ID:???亀だけど、django/db/__init__.py中で
connections = ConnectionHandler(settings.DATABASES)ってなってるから、
settings.pyのDETABASES定義より下の行じゃないと
ダメなんじゃないかな。
0185nobodyさん
2013/01/19(土) 09:59:59.34ID:???0187nobodyさん
2013/01/23(水) 13:23:40.95ID:???0188nobodyさん
2013/02/12(火) 20:07:21.93ID:???0189房州
2013/02/17(日) 18:07:03.35ID:???0190nobodyさん
2013/02/22(金) 18:16:32.21ID:???一つ一つ追っていけばその段階ではわかるけど、仕様そのものが全く頭に入ってこない
0191nobodyさん
2013/02/23(土) 13:45:14.87ID:???他のフレームワークで開発していたら、置き換えるだけで理解できると思うんだが。
たとえばどの変がわかりにくい?
0194nobodyさん
2013/03/11(月) 00:26:00.34ID:???OAuth2&Python3で
0195nobodyさん
2013/03/22(金) 18:57:26.97ID:???0196nobodyさん
2013/03/25(月) 19:52:29.13ID:???http://portal.nifty.com/2013/03/22/a/3.htm
0197nobodyさん
2013/04/04(木) 12:10:00.96ID:???いまいち体系化されてないんだよな。
middlewareやらsignalやらclass-based viewやら、
ちょっと奥まったところにいくとソースみるしかなくなる。
でもdjango自体はまだずっとマシで
そのオープンソースアプリになると全くドキュメントなかったりするから。
pythonのこういうところが普及しない原因なんだろうな。
0198nobodyさん
2013/04/04(木) 16:51:07.95ID:mlSWjsplはげど(死語)
0199nobodyさん
2013/04/04(木) 17:49:08.54ID:???0200nobodyさん
2013/04/04(木) 22:21:11.84ID:hTCiyNuO以下のように settings.py へカスタムフィルタを指定すると、
" 'str' object is not callable " のエラーになります。
-----------------------------------
JINJA2_FILTERS = {
'datetimeformat': 'utils.filters.datetimeformat',
}
-----------------------------------
で、クォーテーションを取って関数直にすると動きます。
-----------------------------------
JINJA2_FILTERS = {
'datetimeformat': utils.filters.datetimeformat,
}
-----------------------------------
なぜ??偉い人教えてください。
django1.4.5 jinja2-2.6 django_jinja-0.11
0202nobodyさん
2013/04/05(金) 09:17:53.64ID:???簡単に入れ替えて使えるようになってますか?
0203nobodyさん
2013/04/05(金) 11:25:49.80ID:F/TEgITkhttp://kay-docs.shehas.net/templates.html
0206nobodyさん
2013/04/10(水) 15:54:55.53ID:???ありがとう
O/R mapperやテンプレートエンジンは何種類かから選べたり、
自由に入れ替えたりできるフレームワークもあるので、Djangoも
そうなってると思ったのですが、残念
0207nobodyさん
2013/04/14(日) 20:18:57.11ID:???Http://qr. net/kh4y
0208nobodyさん
2013/04/18(木) 22:35:21.76ID:???0209nobodyさん
2013/05/01(水) 12:26:59.19ID:???フレームワークとしては良いんだけどなぁ。
0210nobodyさん
2013/05/01(水) 23:56:23.92ID:???そもそもWebサイトに比べてそんなに引き合いもないし
0211nobodyさん
2013/05/09(木) 22:27:24.07ID:???0213nobodyさん
2013/08/02(金) NY:AN:NY.ANID:???データベースにMySQLを使っているのですが、テーブルの文字セットがlatin1_swedish_ciになっているせいなのか、
日本語のテキストを投入できないのですが、モデルの定義で症状順序を指定する方法はないのでしょうか?
0214nobodyさん
2013/08/14(水) NY:AN:NY.ANID:???django.core.serializers.serializeでシリアライズを行うと、オブジェクトに行った変更が維持されずにシリアライズされてしまいます。
0217nobodyさん
2013/09/24(火) 18:51:53.67ID:qDsFnzScDjangoの問題じゃなくて、Apacheをうまくいじれない俺の問題なんだ…(;´д`)
0218nobodyさん
2013/09/24(火) 18:56:41.79ID:???0219nobodyさん
2013/09/24(火) 19:48:22.31ID:???0223nobodyさん
2013/09/29(日) 13:33:41.13ID:???0224nobodyさん
2013/09/29(日) 19:09:36.11ID:???0225nobodyさん
2013/09/29(日) 19:51:23.06ID:???でもいまさらPython2系というのも後ろ向きな気がしますし…
0226nobodyさん
2013/09/30(月) 02:52:14.59ID:???0227nobodyさん
2013/09/30(月) 11:04:14.98ID:4crUfdOTPython2と3の違いは自分で何とかするなり、わからなかったらここで聞くなり。
0228nobodyさん
2013/10/05(土) 21:53:42.87ID:rLQ0vSt30229nobodyさん
2013/10/07(月) 22:48:06.70ID:???<a href="{% url socialauth_begin 'twitter' %}">ログイン</a>
で動くけど、1.5なら
<p><a href="{% url 'socialauth_begin' 'twitter' %}">ログイン</a></p>
じゃないと動かないのね…。
0230nobodyさん
2013/10/10(木) 08:22:16.60ID:???0231nobodyさん
2013/10/10(木) 13:43:57.07ID:???0232nobodyさん
2013/10/12(土) 10:14:16.07ID:katzcLBA0233nobodyさん
2013/10/12(土) 10:15:05.96ID:katzcLBA0234nobodyさん
2013/10/22(火) 17:34:54.08ID:???Djangoは難しすぎる
まず、コントローラとViewとルーティングの3つすら全然わからない
0235nobodyさん
2013/10/22(火) 20:21:30.74ID:???0236nobodyさん
2013/10/25(金) 13:21:28.78ID:upIsqz91で、それをもとに改変していけばそのうち慣れるんじゃない?
0237nobodyさん
2013/10/26(土) 18:58:50.65ID:???でもアプリをいろいろ組み合わせようとすると大変なことになる。
djangoのバージョンも迂闊にあげられないし。
ショッピングサイトをsachimoベースで作ってるが、
一から自分で書いた方が早いんじゃないかと思えてきた。
0238nobodyさん
2013/10/26(土) 19:05:11.06ID:???DjangoはRailsにならって、レールに沿ったやり方で開発する前提でしょ。どんなフレームワークでもそうだけど、特に。
レールから外れるなら、フレームワークよりライブラリ組み合わせるのが普通だと思う。
0239nobodyさん
2013/10/26(土) 20:16:45.45ID:???それはDjangoというよりSatchmoの問題じゃなかろうか
他人の作ったAppを利用するのは思ったより面倒だからなぁ
0240234
2013/10/27(日) 11:53:23.07ID:???これMVCじゃないよね
0241nobodyさん
2013/10/27(日) 13:56:07.27ID:???0244nobodyさん
2013/11/10(日) 13:18:25.05ID:???データベースありきじゃなくてちゃんとモデルが主役というか
今までDBの奴隷だったのが解放された感じ
0245nobodyさん
2013/11/12(火) 02:25:04.60ID:W3f6KAuy0246nobodyさん
2013/11/12(火) 05:46:48.93ID:???settings.pyがシンプルすぎて目を疑った
でもuwsgiで動かそうとすると jingo ちゃんのせいでえらーになる
0247nobodyさん
2013/11/12(火) 15:28:40.85ID:???0248nobodyさん
2013/11/12(火) 15:32:11.85ID:???このぐらいの量なら1日1見出し分のゆっくり翻訳でも一ヶ月で終わりますよ
コミュニティがあまり活発ではないのでしょうか?
0249nobodyさん
2013/11/12(火) 17:20:28.66ID:???困ってるなら、あなたがやってもいいのよ。
0250nobodyさん
2013/11/12(火) 21:08:41.51ID:???0251nobodyさん
2013/11/13(水) 01:25:01.46ID:???0252nobodyさん
2013/12/06(金) 20:28:11.08ID:VQsT5HYM0253nobodyさん
2013/12/07(土) 04:58:47.30ID:???0254sage
2013/12/07(土) 17:27:24.49ID:gAFb5wMQどのフレームワーク?証拠見せろよw
0255nobodyさん
2013/12/13(金) 12:15:36.58ID:???https://docs.djangoproject.com/en/1.6/topics/auth/customizing/
のA full exampleのuser = self.model(…)の意味がわかりません
BaseUserManagerの中にmodelっていうメゾッドがあるんですか?
0256nobodyさん
2013/12/13(金) 13:31:51.00ID:???ドキュメント読んで疑問点が出たら django のソースを見るのが一番
たしかにそのあたりはちょっとややこしいけど・・・
0257nobodyさん
2013/12/13(金) 14:56:46.43ID:???こんなに早く回答がもらえるとは思ってなかった
0258nobodyさん
2013/12/19(木) 13:42:20.81ID:???0260nobodyさん
2013/12/19(木) 15:41:05.68ID:???0261nobodyさん
2014/01/18(土) 18:04:24.93ID:???[Errno 5] Input/output error
で落ちてしまいます
これを回避する方法は無いのでしょうか?
0262nobodyさん
2014/01/19(日) 01:49:06.58ID:???0263nobodyさん
2014/01/21(火) 05:07:03.69ID:???それともprintが出力するはずだった情報をloggingが受け取る?ことでエラーが発生しないというなんでしょうか
あと、もし500を返すような致命的エラーが出たらメールで管理者に送る機能しか無くて、ファイルにlogとして残せないですよね?
メール送るところを自分で改変してログに残せそうな気もするんですがちょっと敷居が高過ぎます
http://www.18th-technote.com/post/5352244742/django-process-exception
今は上記を参考にviewで発生したエラーはprocess_exceptionで補足できてるんですが、
templateでもしエラーが起きたら補足できません
これデフォルトでなぜ付けないんだろうといつも疑問に思ってます
0264nobodyさん
2014/01/21(火) 09:23:00.68ID:???uWSGI だとまず >>261 の状況が発生しないのだけど
使ってる環境(サーバ)はなあに?
ちなみに、printで標準出力に出したものは uWSGIのログにも出力されるよ
0265nobodyさん
2014/01/22(水) 21:52:13.79ID:???gunicornです
gunicornでログを生成するようにしたらprintの内容が出力されてエラーが出なくなりました!
Django本体のログのことしか頭に無かったです
ヒントありがとうございます 大変助かりました
0266nobodyさん
2014/01/25(土) 07:08:02.10ID:HM5WIj95Djangoと言えばnginx+gunicornの組み合わせしか知らないんですが最近気になってます
0267nobodyさん
2014/01/28(火) 23:39:54.41ID:???どの辺が嬉しいんでしょう?
0268nobodyさん
2014/01/29(水) 17:12:34.45ID:???潤沢なメモリがあるサーバならApacheでも良い
枯れているし対応する拡張も多い
でも兎に角メモリイータでリソースに厳しい
uWSGI
馬鹿っ速い・先進的な機能がテンコ盛り・省リソースで動く
0269nobodyさん
2014/02/07(金) 23:56:26.65ID:NNxPDh1r0270nobodyさん
2014/02/13(木) 04:25:53.66ID:???を含む関数を
manage.py shellから呼んでも通るんですが、
本番環境だとApacheがsegmentation fault(11)を吐きます
上記関数を含まない他のviewは問題なく表示できます。
どこらへん調べたらいいですか?
Apacheでmod_wsgiをdaemonモードで使っててDjango1.6です
0271nobodyさん
2014/02/23(日) 22:30:46.68ID:???RoRに比べて日本語の情報も少ないし、Django弄ってる日本人少ない?
RoRに浮気したいけど、初心者に厳しいとも聞くし
0273nobodyさん
2014/02/24(月) 12:07:32.49ID:???0274nobodyさん
2014/02/24(月) 14:39:31.70ID:Grf2Q2cg英語圏は楽でいいよな
0275nobodyさん
2014/02/24(月) 20:18:43.30ID:???0276nobodyさん
2014/02/24(月) 21:38:54.89ID:???0278nobodyさん
2014/02/25(火) 06:29:04.41ID:???そもそもDjangoに限らずViewの部分なんて難しい処理とかないじゃん
0279nobodyさん
2014/02/25(火) 16:06:21.05ID:???PHPでいう、if(isset($var)){}のような事をしたいのですが
0280nobodyさん
2014/02/25(火) 16:10:25.31ID:???0281nobodyさん
2014/02/25(火) 16:37:36.90ID:???Viewってmysite/mysite/urls.pyに毎回わざわざurlpatternsを書かないといけないの?
(r'^myapp/$', 'myapp.views.index')とか
また、アプリケーションとしてmyappを追加した場合、mysite/myapp/views.pyに毎回def index(request):context="" return HttpResponse(render())みたいな長ったらしいのを書かないといけないんでしょ?
で、テンプレートはmysite/template/myapp/以下にindex.htmlとして入れると
Smartyみたいに$view->assign();や$view->display()だけでいけるように設定できれば楽なんだけど
0282nobodyさん
2014/02/25(火) 21:06:50.68ID:???とは言えドキュメントにこのあたりは纏まって書いてないので
ひと通りやらないと分からないのはちょっと不親切だったりする
まず"Djangoアプリ 再利用" とかでググってみておくれ
urls.pyにまとめてurlを書く利点はページのURL配置に自由度を持たせる為
viewの指定については、django.shortcuts.render でも使えばいい
それか同じように毎回書くのが面倒ならそのラッパを好きに自分で作る。
テンプレートの場所も設定で変更できる。
開発時の問題ならシンボリックリンクでも貼っておけば良い。
0283nobodyさん
2014/02/25(火) 21:56:01.64ID:???それともう一つ質問あるんだけど、
例えばHTMLのフォーム(form.html)からanalyze.pyへ移動し、
そこでフォームのバリデーションなんかしたりしてから別のHTMLページに飛ばしたい場合は、
<form action="./analyze.py">でどのように指定すればいいの?
例えテンプレートform.htmlがanalyze.pyと同じディレクトリにあっても相対パスが適用されないよね?
CSSやJSの外部ファイルの読み込みの際にワケが分からなくてハマったんだけど
コレは/static/ディレクトリを作成し、その中に入れてなんとかなった
Djangoではマニュアルとか読んでてもModelがDBからみの事をいうような書かれ方してるけど、
自分は外部ライブラリなどもModelだと認識してる
analyze.pyのような関数やクラス群はどこに置いて、どのように指定すればいいの?
0284nobodyさん
2014/02/25(火) 22:34:11.12ID:???まずこれを綺麗サッパリ忘れてくれ。
Djangoでは まずURLを登録し、そのURLで実行する処理を指定する。
例えば urls.py に /hoge/ へのアクセスは myapp/views.py の hoge(request) で処理せよという感じで指定する。
換言すれば、urls.py に登録ないURLへはアクセスできない。
Formの処理については 日本語のドキュメントにサンプルがある。
それをまず真似て作ってみる。いきなりDjangoの流儀と違うやり方で実装しようとしないでまずはサンプルの理解から。
別のページに飛ばすのは redirect を使えばよいし、
analyze.pyに書いた処理でバリデーションしたければ、Formのバリデート処理に、analyze.py を import して使えばよい。
また、<form action="xxx">にForm表示とは違うURLを指定することも可能だが、そのURLは当然 urls.py に登録済みでなければ駄目だよ。
>自分は外部ライブラリなどもModelだと認識してる
違う
0285nobodyさん
2014/02/25(火) 23:39:29.25ID:???analyze.pyを{{STATIC_URL}}内に入れてaction部にanalyze.pyを記述しフォームを実行したらanalyze.pyのダウンロードが始まったw
なるほど、Djangoって結構ガチッとしたFWなのかな
FWはZendFrameworkくらいしか使ったことないんだけど、アレは最初のコントローラー部で迷った以外はライブラリ感覚で使えたし、フォームなんかも無視して自分で実装しても問題なかった
対してcakePHPはガチッとしてると聞いた
ライブラリ感覚ならTurboGearの方がいいとか数年前読んだけど
自分としては、PythonはApache連携やら、フォームを作成後ブラウザからスクリプトを起動させるのが面倒くさいから、Django使おうって位の軽いユーザーのつもりだったんだけど、思った以上にブラウジングが面倒くさいなぁと
もうちょっと頑張って学習してみる
><form action="xxx">にForm表示とは
>違うURLを指定することも可能だが、
>そのURLは当然 urls.py に登録済みでなければ駄目だよ。
ココがちょっと分かんないんだけど、
mysite/libs内にanalyze.pyを入れたとして、
それらのディレクトリ、ファイルなど外部ファイルにアクセスするのにわざわざURL登録しないといけないの?
HTML,つまりViewを必要としないpythonファイルをディスパッチ、レンダリングするというなら、その方法が見当も付かないんだけど...
混乱してるなぁ...うぅむ...
0286nobodyさん
2014/02/26(水) 00:25:11.85ID:???{{MEDIA_URL}} ユーザがアップロードしたファイルを置く場所
上記にプログラムファイルを置いても駄目。
既に経験済みの様だが、プログラムファイルは実行されずダウンロードされてしまう。
>HTML,つまりViewを必要としないpythonファイルをディスパッチ、レンダリングする・・・
urls.pyには正規表現が使える。
たとえば url(r'^hoge/(?P<pagename>[a-zA-Z0-9]+).html$', 'mysite.views.nonview', name='nonview')
と定義すれば /hoge/foo.html や /hoge/bar.html といったURLを mysite/viers.py の nonview関数で処理できる
nonview関数ではpagename引数に入ったHTMLファイル名を 任意のディレクトリから呼び出し
HttpResponse 等で出力すればよい (もちろん任意のテンプレートでラップしてもよい)
または 静的HTMLの表示に全くDjangoを通さないくて良ければ {{STATIC_URL}} 以下にHTMLファイルを配置し
表示処理は HTTPServer にまかせてしまう
0287nobodyさん
2014/02/26(水) 00:48:09.44ID:???View部分の面倒くさい記述は教えてもらったので検索したりして何とかなった
慣れないとDjangoって難しいんだね
今んとこディスパッチャの部分が特に
皆自分で学んでいったんだろうけど、凄いなぁ
自分としては、
foo.htmlフォームの実行
-> analyze.pyよりフォームで送られてきたデータのバリデーションとデータベース接続、登録
-> リダイレクト
-> bar.html
というごく一般的なフォームの挙動を行おうとしただけでこれだけ悩んでる
{{STATIC_URL}} 静的なファイルを置く場所 JavaScript cssファイル 画像ファイル etc
{{MEDIA_URL}} ユーザがアップロードしたファイルを置く場所
上記にプログラムファイルを置いても駄目。
既に経験済みの様だが、プログラムファイルは実行されずダウンロードされてしまう。
>nonview関数ではpagename引数に入ったHTMLファイル名を 任意のディレクトリから呼び出し
>HttpResponse 等で出力すればよい (もちろん任意のテンプレートでラップしてもよい)
と言う事は、Djangoでは/lib/などの外部ファイル(admin.pyやsetting.pyなどではなく、myfunctions.pyのようなもの)は使えず、処理を行いたい挙動はnonview関数内にPythonスクリプトを書いていくということになるんだね?
なるほど
0288nobodyさん
2014/02/26(水) 07:45:04.05ID:???0289nobodyさん
2014/02/26(水) 08:06:17.61ID:???http://d.hatena.ne.jp/shuji_w6e/20090514/1242227504
まずこのあたりに目を通してはどうだろうか
0290nobodyさん
2014/02/26(水) 21:53:50.81ID:???0291nobodyさん
2014/02/26(水) 22:48:12.48ID:LOhj6QupManager:date等を指定してのクエリ(戻り:QuerySetや集約後のデータ)
View:Calendar.monthdatescalendarのような構造の配列を作る
それぞれのモデルのManagerを呼んでデータ取得
配列にはモデルから取得したデータをまとめた辞書を入れる
Template:forループで上の配列を回してhtmlにする
こんな感じで合ってますか?
不安な点:
・クエリを書く場所(View?Manager?)
・View内でコードを書く場所
今はgetメソッドに直接書いていますが、getは弄らずにメソッドに書いてそれをテンプレートから
呼んだ方が(view.hoge的な)いいのでしょうか?それとも別ファイルに関数を書くべきですか?
・現在はデータをループしやすいような配列にしてから渡してますが、Template内である程度HTMLにした方がいいのか?
※formは軽くタグとか付けられますよね
ネットでサンプルを探してはみたのですが、今一これが正解!的なコードが見つからなくて・・・
あと設計の参考になりそうな良いサイトってありますでしょうか?
0292nobodyさん
2014/02/26(水) 22:50:32.75ID:???Template内で → View内で
でした
0293nobodyさん
2014/02/27(木) 01:08:04.43ID:???ビジネスロジックと言われるような中枢を成す処理はmodelまたはlogics.pyとか別ファイルにする
Djangoのポリシーではテンプレート内でデータは加工しない
テンプレートはデザイナーが触るものでプログラマーが触るものではない
よってデータの加工はviewでやる
getメソッド?なにそれ
0294nobodyさん
2014/02/27(木) 05:14:32.62ID:???俺ならインタフェースだけ合わせて、template内で同じように見えるようにしてiteration。
0295nobodyさん
2014/02/27(木) 06:00:14.57ID:???のような形を作るにはどのようにすればいいのでしょうか?
class yes(forms.Form):
bar = forms.ChoiceField(
widget = forms.Select()
)
で、セレクトバーは出たんですが、その後の<option>の指定方法がわかりません
自分はHTMLで{{form.bar}}のようにしています
0296nobodyさん
2014/02/27(木) 06:01:32.60ID:???0298nobodyさん
2014/02/27(木) 17:19:30.62ID:???PHPの場合は、送った先が$_POST['foo']とかを処理するけど、
Djangoの場合は、処理するページ(<form>のあるページ)がPOST値を処理してから次のページへリダイレクトって仕組みだよね?
送った先(次のページ)がPOST値を取得したり表示する場合はセッションを使わないといけないんだよね?
0301nobodyさん
2014/03/01(土) 00:04:24.54ID:???getはクラスベース汎用ビューにあるgetのオーバーライドです
ネットの参考サイトがそのような書き方をしていましたので
requestからURLパラメータ欲しいから・・・と思いましたがView.requestでどこからでも取得出来るんですね
となるとコンテキストに追加するのはget_context_dataがいいのかな
あとテーブル操作はカスタムManager、レコード操作はModelと意識してます
>>294
フォームで言う、form.messageみたいなのを作るって事でしょうか?
ネットでもいろんなやり方があって、もう設計に拘らず適当でもいい気がしてきました・・・w
しかし関数ベースとクラスベースの情報があってぐぐり難いですね
0303nobodyさん
2014/03/02(日) 09:36:50.36ID:???オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
http://toro.2ch.net/test/read.cgi/tech/1393660194/85
0304nobodyさん
2014/04/08(火) 07:57:45.66ID:Gp3QMMMlsqlite使用で上のコードを書いただけで 200msくらいブラウザの反応が遅くなるから、
なんとなくmysqlに変えてみたらなぜか早くなりました(300ms→100ms)
※他にも簡単なSQLありますが、上のコードが無い場合は両者反応速度一緒ぐらいです
しかしdebug_toolbarで見るSQLの実行時間は常に変わらず0or1ms
あとtime.clockでもコードの実行時間見てるけど、なんか変です
上のコードがあるメソッドを、clockで囲ってコード有無・DB変更して計測しても、常に30ms未満
なぜでしょうか・・・orz
django1.6.2 python2.7 windows7
0305nobodyさん
2014/04/08(火) 19:30:15.43ID:???sqliteはファイルだからIOがとかなんとか
mysqlもファイルですよ
0306nobodyさん
2014/04/08(火) 23:51:56.94ID:???ついでにtimeitとやらで計測してみました
t = timeit.Timer("""s = SessionStore('key')
s.save()""", 'from django.contrib.sessions.backends.db import SessionStore')
logging.debug(t.timeit(10))
[ sqlite3.8.3.1 ] 約2800ms VACUUMすると遅くなって3800ms・・・
QUERY = u'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date"
FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s )' -
PARAMS = (u"'z9q43506rahjmcheld9e0m9p4motsbwa'", u"'2014-04-08 13:53:36.183000'")
QUERY = u'BEGIN' - PARAMS = ()
QUERY = u'UPDATE "django_session" SET "session_data" = %s, "expire_date" = %s
WHERE "django_session"."session_key" = %s ' - PARAMS = (u"'NDFkMjdiMjI5NWUzYjliZWIzNGQwMGI1YzA1ZDcwMWQ5MjNmZWVlNDp7fQ=='",
u"'2014-04-22 13:53:36.190000'", u"'z9q43506rahjmcheld9e0m9p4motsbwa'")
UPDATEはdebug_toolbar上では1or2ms。トランザクションの関係で計測上手く出来ないのかも?
UPDATEをSQLiteManagerから直接実行しても300msかかってました
[ mysql5.6.17 ] 約140ms
SELECT ??? FROM `django_session` WHERE (`django_session`.`session_key` = 'z9q43506rahjmcheld9e0m9p4motsbwa'
AND `django_session`.`expire_date` > '2014-04-08 13:59:03' )
UPDATE `django_session` SET `session_data` = 'NDFkMjdiMjI5NWUzYjliZWIzNGQwMGI1YzA1ZDcwMWQ5MjNmZWVlNDp7fQ==',
`expire_date` = '2014-04-22 13:59:03' WHERE `django_session`.`session_key` = 'z9q43506rahjmcheld9e0m9p4motsbwa'
しかしsqliteのアダプタって無駄が多いんですね
さすがに差が開きすぎな気もするので、単に私の環境のsqliteがおかしいのかも・・・
0307306
2014/04/09(水) 06:33:27.18ID:???sqliteファイルをSSDへ移したところ、2800ms→230msまで縮まりました
しかしHDDとSSDでここまで違うとは…
0308nobodyさん
2014/05/22(木) 16:31:45.79ID:???0309nobodyさん
2014/05/24(土) 02:57:47.14ID:???0310nobodyさん
2014/05/24(土) 03:17:53.06ID:???0311nobodyさん
2014/05/24(土) 12:31:13.12ID:???Emperor + Zerg で Graceful reload とか。
0312nobodyさん
2014/05/24(土) 13:50:56.96ID:???0313nobodyさん
2014/05/24(土) 14:09:01.28ID:???■ このスレッドは過去ログ倉庫に格納されています