- 1 名前:nobodyさん mailto:sage [2011/12/15(木) 23:47:02.03 ID:???.net]
- LL言語「Python」で実装されたWebフレームワーク Django
Web開発する上で必要となる機能がそろっており、 管理サイト画面を自動作成できるなどの特色を持ちます。 前スレ 【Python】Webフレームワーク Djangoスレ Part1 kohada.2ch.net/test/read.cgi/php/1156612854/ 本家サイト www.djangoproject.com/ 日本語ユーザ会「Djangoと日本の仲間たち」 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
- 285 名前:nobodyさん mailto:sage [2014/02/25(火) 21:06:50.68 ID:???.net]
- Djangoの設計概念の理解不足だと思う
とは言えドキュメントにこのあたりは纏まって書いてないので ひと通りやらないと分からないのはちょっと不親切だったりする まず"Djangoアプリ 再利用" とかでググってみておくれ urls.pyにまとめてurlを書く利点はページのURL配置に自由度を持たせる為 viewの指定については、django.shortcuts.render でも使えばいい それか同じように毎回書くのが面倒ならそのラッパを好きに自分で作る。 テンプレートの場所も設定で変更できる。 開発時の問題ならシンボリックリンクでも貼っておけば良い。
- 286 名前:nobodyさん mailto:sage [2014/02/25(火) 21:56:01.64 ID:???.net]
- なるほど、ちょっと調べてみるね
それともう一つ質問あるんだけど、 例えばHTMLのフォーム(form.html)からanalyze.pyへ移動し、 そこでフォームのバリデーションなんかしたりしてから別のHTMLページに飛ばしたい場合は、 <form action="./analyze.py">でどのように指定すればいいの? 例えテンプレートform.htmlがanalyze.pyと同じディレクトリにあっても相対パスが適用されないよね? CSSやJSの外部ファイルの読み込みの際にワケが分からなくてハマったんだけど コレは/static/ディレクトリを作成し、その中に入れてなんとかなった Djangoではマニュアルとか読んでてもModelがDBからみの事をいうような書かれ方してるけど、 自分は外部ライブラリなどもModelだと認識してる analyze.pyのような関数やクラス群はどこに置いて、どのように指定すればいいの?
- 287 名前:nobodyさん mailto:sage [2014/02/25(火) 22:34:11.12 ID:???.net]
- PHPはファイルの場所と名前からURL情報が作ら
- 288 名前:れる。
まずこれを綺麗サッパリ忘れてくれ。 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だと認識してる 違う [] - [ここ壊れてます]
- 289 名前:nobodyさん mailto:sage [2014/02/25(火) 23:39:29.25 ID:???.net]
- 教えてくれてありがとね
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ファイルをディスパッチ、レンダリングするというなら、その方法が見当も付かないんだけど... 混乱してるなぁ...うぅむ...
- 290 名前:nobodyさん mailto:sage [2014/02/26(水) 00:25:11.85 ID:???.net]
- {{STATIC_URL}} 静的なファイルを置く場所 JavaScript cssファイル 画像ファイル etc
{{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 にまかせてしまう
- 291 名前:nobodyさん mailto:sage [2014/02/26(水) 00:48:09.44 ID:???.net]
- 毎回毎回本当にありがとね
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スクリプトを書いていくということになるんだね? なるほど
- 292 名前:nobodyさん mailto:sage [2014/02/26(水) 07:45:04.05 ID:???.net]
- 質問者はMVCが理解できていない
- 293 名前:nobodyさん mailto:sage [2014/02/26(水) 08:06:17.61 ID:???.net]
- docs.djangoproject.jp/en/latest/misc/design-philosophies.html
d.hatena.ne.jp/shuji_w6e/20090514/1242227504 まずこのあたりに目を通してはどうだろうか
- 294 名前:nobodyさん mailto:sage [2014/02/26(水) 21:53:50.81 ID:???.net]
- Two scoop of django 1.6のkindle版マダー?
- 295 名前:nobodyさん [2014/02/26(水) 22:48:12.48 ID:LOhj6Qup.net]
- 例えば日毎に複数モデルからデータを持ってきて表示するカレンダーを作る場合、
Manager:date等を指定してのクエリ(戻り:QuerySetや集約後のデータ) View:Calendar.monthdatescalendarのような構造の配列を作る それぞれのモデルのManagerを呼んでデータ取得 配列にはモデルから取得したデータをまとめた辞書を入れる Template:forループで上の配列を回してhtmlにする こんな感じで合ってますか? 不安な点: ・クエリを書く場所(View?Manager?) ・View内でコードを書く場所 今はgetメソッドに直接書いていますが、getは弄らずにメソッドに書いてそれをテンプレートから 呼んだ方が(view.hoge的な)いいのでしょうか?それとも別ファイルに関数を書くべきですか? ・現在はデータをループしやすいような配列にしてから渡してますが、Template内である程度HTMLにした方がいいのか? ※formは軽くタグとか付けられますよね ネットでサンプルを探してはみたのですが、今一これが正解!的なコードが見つからなくて・・・ あと設計の参考になりそうな良いサイトってありますでしょうか?
- 296 名前:nobodyさん mailto:sage [2014/02/26(水) 22:50:32.75 ID:???.net]
- >・現在はデータをループしやすいような配列にしてから渡してますが、Template内である程度HTMLにした方がいいのか?
Template内で → View内で でした
- 297 名前:nobodyさん mailto:sage [2014/02/27(木) 01:08:04.43 ID:???.net]
- 単純なデータ取得、たとえば pkを指定してレコード取得や一覧取得はView
ビジネスロジックと言われるような中枢を成す処理はmodelまたはlogics.pyとか別ファイルにする Djangoのポリシーではテンプレート内でデータは加工しない テンプレートはデザイナーが触るものでプログラマーが触るものではない よってデータの加工はviewでやる getメソッド?なにそれ
- 298 名前:nobodyさん mailto:sage [2014/02/27(木) 05:14:32.62 ID:???.net]
- >>291
俺ならインタフェースだけ合わせて、template内で同じように見えるようにしてiteration。
- 299 名前:nobodyさん mailto:sage [2014/02/27(木) 06:00:14.57 ID:???.net]
- <select><option value="foo">bar</option></select>
のような形を作るにはどのようにすればいいのでしょうか? class yes(forms.Form): bar = forms.ChoiceField( widget = forms.Select() ) で、セレクトバーは出たんですが、その後の<option>の指定方法がわかりません 自分はHTMLで{{form.bar}}のようにしています
- 300 名前:nobodyさん mailto:sage [2014/02/27(木) 06:01:32.60 ID:???.net]
- すみません、barじゃなくfooでした
- 301 名前:nobodyさん mailto:sage [2014/02/27(木) 10:04:22.81 ID:???.net]
- >>296
choices
- 302 名前:nobodyさん mailto:sage [2014/02/27(木) 17:19:30.62 ID:???.net]
- フォームでPOST値を送信する場合って、
PHPの場合は、送った先が$_POST['foo']とかを処理するけど、 Djangoの場合は、処理するページ(<form>のあるページ)がPOST値を処理してから次のページへリダイレクトって仕組みだよね? 送った先(次のページ)がPOST値を取得したり表示する場合はセッションを使わないといけないんだよね?
- 303 名前:nobodyさん mailto:sage [2014/02/27(木) 20:08:10.07 ID:???.net]
- >>298
そんなことない。作り方次第。 ただ自然に作ると、
- 304 名前:nobodyさん mailto:sage [2014/02/27(木) 20:09:28.52 ID:???.net]
- >>299 続き
そうなる。
- 305 名前:nobodyさん mailto:sage [2014/03/01(土) 00:04:24.54 ID:???.net]
- >>292
getはクラスベース汎用ビューにあるgetのオーバーライドです ネットの参考サイトがそのような書き方をしていましたので requestからURLパラメータ欲しいから・・・と思いましたがView.requestでどこからでも取得出来るんですね となるとコンテキストに追加するのはget_context_dataがいいのかな あとテーブル操作はカスタムManager、レコード操作はModelと意識してます >>294 フォームで言う、form.messageみたいなのを作るって事でしょうか? ネットでもいろんなやり方があって、もう設計に拘らず適当でもいい気がしてきました・・・w しかし関数ベースとクラスベースの情報があってぐぐり難いですね
- 306 名前:nobodyさん mailto:sage [2014/03/01(土) 02:11:13.60 ID:???.net]
- >>301
>>294だが違う。 モデルで吸収するってこと。
- 307 名前:nobodyさん mailto:sage [2014/03/02(日) 09:36:50.36 ID:???.net]
- >>1
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。 toro.2ch.net/test/read.cgi/tech/1393660194/85
- 308 名前:nobodyさん [2014/04/08(火) 07:57:45.66 ID:Gp3QMMMl.net]
- request.session['hoge'] = 0
sqlite使用で上のコードを書いただけで 200msくらいブラウザの反応が遅くなるから、 なんとなくmysqlに変えてみたらなぜか早くなりました(300ms→100ms) ※他にも簡単なSQLありますが、上のコードが無い場合は両者反応速度一緒ぐらいです しかしdebug_toolbarで見るSQLの実行時間は常に変わらず0or1ms あとtime.clockでもコードの実行時間見てるけど、なんか変です 上のコードがあるメソッドを、clockで囲ってコード有無・DB変更して計測しても、常に30ms未満 なぜでしょうか・・・orz django1.6.2 python2.7 windows7
- 309 名前:nobodyさん mailto:sage [2014/04/08(火) 19:30:15.43 ID:???.net]
- 計測何回やったんだ
sqliteはファイルだからIOがとかなんとか mysqlもファイルですよ
- 310 名前:nobodyさん mailto:sage [2014/04/08(火) 23:51:56.94 ID:???.net]
- >>305
ついでに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がおかしいのかも・・・
- 311 名前:306 mailto:sage [2014/04/09(水) 06:33:27.18 ID:???.net]
- すみません、どうやら単純にデータがSSDにあるかどうかの問題でした…
sqliteファイルをSSDへ移したところ、2800ms→230msまで縮まりました しかしHDDとSSDでここまで違うとは…
- 312 名前:nobodyさん mailto:sage [2014/05/24(土) 02:57:47.14 ID:???.net]
- nginxで使う場合uwsgiとgunicornでは、どちらがオススメでしょうか?
- 313 名前:nobodyさん mailto:sage [2014/05/24(土) 03:17:53.06 ID:???.net]
- そんな質問してるようじゃおまえにはまだはやい
- 314 名前:nobodyさん mailto:sage [2014/05/24(土) 12:31:13.12 ID:???.net]
- uWSGIの方が色々出来て便利だけどドキュメント読めないと詰むかもわからん。
Emperor + Zerg で Graceful reload とか。
- 315 名前:nobodyさん mailto:sage [2014/05/24(土) 13:50:56.96 ID:???.net]
- バカげた質問である
- 316 名前:nobodyさん mailto:sage [2014/05/24(土) 14:09:01.28 ID:???.net]
- Djangoに入ってるsimplejsonってUNICODEを期待してるの?
- 317 名前:nobodyさん mailto:sage [2014/05/26(月) 00:49:39.85 ID:???.net]
- >>312
は?
- 318 名前:nobodyさん mailto:sage [2014/07/02(水) 22:36:04.75 ID:???.net]
- どなたかいらっしゃたらちょっと助けて下さい。
DjangoのViewのとある関数で、別の関数の中で使った変数を使うことはできますか? 下の例なら、関数Aの中で関数BのgetHAMという変数を使いたいです。
- 319 名前:nobodyさん mailto:sage [2014/07/02(水) 22:38:02.95 ID:???.net]
- (例)
def A(request): fee = int(getHAM) + 1 return fee def B(request): getHAM = str(1+1)
- 320 名前:nobodyさん mailto:sage [2014/07/02(水) 23:15:22.78 ID:???.net]
- そんな設計絶対に許さないけど、どうしてもというならセッション使おう
- 321 名前:nobodyさん mailto:sage [2014/07/02(水) 23:17:36.14 ID:???.net]
- やっぱり許せん
ステートレスって言葉を勉強してこい
- 322 名前:nobodyさん mailto:sage [2014/07/03(木) 00:19:06.33 ID:???.net]
- 315です。
request.session['getHAM']みたいな感じで解決できたようです。 どうもありがとうございました。 ステートレスの意味が調べました。 ですが私はOAuth1を使ったTwitterアプリを作ろうとしていて、 views.pyのTwitterへリダイレクトする関数とTwitterからのcallbackを受ける関数はどうしても違うものになるかと思います。 プログラミング自体が初心者でして、不快にさせていたら申し訳ないです。
- 323 名前:nobodyさん mailto:sage [2014/07/03(木) 01:28:08.19 ID:???.net]
- >>318
ごめん調子に乗っただけ oauth か。oauth みたいにステート保持する必要あるならセッション使う
- 324 名前:nobodyさん mailto:sage [2014/07/20(日) 11:11:20.67 ID:???.net]
- プロジェクトとアプリケーションがいまいちわかりません
djangoではプロジェクトの下に異なるアプリケーションを作成する前提なんですか? 2ch掲示板のクローンを作りたいならmanage.py startapp bbs2chclone rssリーダーを作りたいならmanage.py startapp rssreader って1つのプロジェクトの中に作っていくスタイルがdjangoですか? PHPのMVCから流れてきたのでこのへんがよくわかりません
- 325 名前:nobodyさん mailto:sage [2014/07/20(日) 11:42:27.87 ID:???.net]
- startappでviews.pyも一緒に作られないのは何故ですか?
- 326 名前:nobodyさん mailto:sage [2014/07/20(日) 17:59:28.79 ID:???.net]
- 作られるよ
- 327 名前:nobodyさん mailto:sage [2014/07/20(日) 18:43:16.39 ID:???.net]
- 1.6と1.7では作られませんよ
バージョンいくつの話ですか?
- 328 名前:nobodyさん mailto:sage [2014/07/20(日) 19:37:29.49 ID:???.net]
- >>320
二つ目のアプリを別プロジェクトで作ってもいいけど、運用で一緒に動かせるように。 標準で入っているアプリも使っているだろ。 アプリ単体で作ってもいいけど、すぐ動かせるようにプロジェクトをジェネレートしているんだと思う。
- 329 名前:nobodyさん mailto:sage [2014/09/20(土) 09:55:41.08 ID:???.net]
- 配布目的ならやっぱりプロジェクトはわけたほうがいいですよね
- 330 名前:nobodyさん mailto:sage [2014/09/22(月) 18:49:56.60 ID:???.net]
- 旧態依然とした社内で布教したく、業務システムのプロトタイプを作ってみました。
そこに入れるデータがExcelにしかないのですが、これをインポートするのにxlrdライブラリでExcelを読みつつ、django用に書いたmodelクラスのインスタンスを生成してはsave()を走らせるコードをちまちまと走らせています。 これでも要件は満たすのですが、皆さんだったらどうしますか?
- 331 名前:nobodyさん [2014/09/25(木) 18:09:06.55 ID:aYh5A6Fe.net]
- Djangoでおすすめのプラグイン教えて
自分はdjango-debug-toolbarとpaginationくらいしか使ってないけど
- 332 名前:nobodyさん mailto:sage [2014/09/25(木) 21:23:37.04 ID:???.net]
- >>327
paginationとかライブラリとしてしか使ってなかったわ。
- 333 名前:nobodyさん [2014/09/26(金) 03:12:29.74 ID:uLtl5abZ.net]
- フォームでアルファベットのみとかしたい場合どうすればいい?
cleared_data[].isalpha()とかしたら、アルファベット以外でもすり抜けてしまうんだけど
- 334 名前:nobodyさん mailto:sage [2014/09/26(金) 07:54:29.85 ID:???.net]
- クライアントサイドとサーバサイドでバリデーションかけろよ
- 335 名前:nobodyさん mailto:sage [2014/09/26(金) 08:33:46.96 ID:???.net]
- >>329
cleaned_data見ろよ。
- 336 名前:nobodyさん [2014/09/26(金) 09:36:46.32 ID:uLtl5abZ.net]
- >>330
は? サーバサイドでは上記のように試したんだけど出来なかった 内部で変換されて出力時にまた変換されてるのかな、と どういう風にチェックしたらいい? DjangoはガチガチのFWだから、PHPみたいにprintやvar_dumpしても出てこないから分かりにくい >>331 ごめん、cleared_dataじゃなく、cleaned_dataの書き間違いだった どうやって見るん? pdbとか? 自分はdjango-pdb見たが分からんかった
- 337 名前:nobodyさん mailto:sage [2014/09/26(金) 13:01:27.56 ID:???.net]
- 【IT】「bash」シェルに重大な脆弱性、開発元がパッチ公開 [14/09/25]
daily.2ch.net/test/read.cgi/newsplus/1411612522/ 多くのUNIXおよびLinuxのユーザーに利用されている「Bourne Again SHell(Bash)」に重大な セキュリティホールが発見された。このセキュリティホールはBashによる環境変数の評価方法に起因している。 ハッカーは特別に作成した変数を用いてセキュリティホールを突き、シェルコマンドを実行できる。これにより サーバはさらなる本格的な攻撃に対して脆弱な状態となる。 (略) このセキュリティホールを抜本的に解決するには、脆弱性のあるBashを新しい安全なバージョンに置換する 必要がある。米国時間9月24日朝の時点で、Bashの開発元からすべての現行バージョンをアップデートする パッチがリリースされている。また、DebianとRed Hatはパッケージ化されたパッチを公開している。 ディストリビューターからのパッチを待たず、アプリケーションに対する危険な入力を排除したり、シェルを 呼び出す古いCGIスクリプトを無効化して新しいスクリプトに置換したり、Bash自体を別のシェルに 置換するなどの回避策を実施することも重要だ。
- 338 名前:nobodyさん mailto:sage [2014/09/26(金) 16:46:16.19 ID:???.net]
- >>332
シェルで見る。 ブラウザでしか操作できないならログ。 それもわからないならraiseしちゃうとか。
- 339 名前:nobodyさん [2014/10/02(木) 20:04:40.32 ID:MmprTnHx.net]
- models使ったスクリプトで、データベースに問い合わせて得た結果セットをJSON化したいんですが、
...is not JSON seralizableとなります どう処理すればいいですか? ちなみに、 >>>foo = bar.objects.all() >>>print type(foo) <class 'django.db.models.query.ValuesQuerySet'> >>>print json.dumps(foo) で上記のエラーが出ます
- 340 名前:nobodyさん mailto:sage [2014/10/02(木) 21:12:21.95 ID:???.net]
- QuerySetオブジェクトはそのままでは渡せない
dictionaryじゃないと stackoverflow.com/questions/10502135/django-queryset-to-dict-for-use-in-json
- 341 名前:nobodyさん [2014/10/03(金) 08:34:38.15 ID:L6uW93jV.net]
- >>>a = ['ringo','リンゴ']
>>>print a [{'ringo':'\xe3\x82'}]とか\u73feとかで表示されますが、これを日本語でちゃんと、'りんご'と表示させるにはどうすればいいですか? また、階層が深いと[<ringo: ringo object>]のようになったりもしますがこれの対処法も教えてもらえないでしょうか?
- 342 名前:nobodyさん mailto:sage [2014/10/03(金) 08:44:06.28 ID:???.net]
- >>337
870 デフォルトの名無しさん sage 2014/10/02(木) 11:43:57.63 ID:9jKc/G7B CUI環境で >>>a = ['ringo','リンゴ'] >>>print a [{'ringo':'\xe3\x82'}]とか\u73feとかで表示されますが、これを日本語でちゃんと、'りんご'と表示させるにはどうすればいいですか? また、階層が深いと[<ringo: ringo object>]のようになったりもしますがこれの対処法も教えてもらえないでしょうか? PHPのvar_dump()みたいにオブジェクト内でもデータを確認したいのですが
- 343 名前:nobodyさん mailto:sage [2014/10/03(金) 09:28:45.23 ID:???.net]
- django関係なくね?
まずは python2 か python3 かはっきりしろ ringo クラスに __repr__ メソッドを追加しろ
- 344 名前:nobodyさん mailto:sage [2014/10/03(金) 10:04:20.76 ID:???.net]
- >>339
関係ないと言いつつ的確に答えてて濡れた
- 345 名前:nobodyさん mailto:sage [2014/10/04(土) 09:46:27.47 ID:???.net]
- Djangoってさ、フォームのセキュリティに関して自分たちは何も対策することない?
基本的にO/Rマッパー使ったり、Formsクラスや{{ csrf_token }}使ってる限り セッションハイジャックに関しては分かんないけど
- 346 名前:nobodyさん mailto:sage [2014/10/04(土) 10:28:41.48 ID:???.net]
- 任せとけばいいよ
テストみてみ すごいから
- 347 名前:nobodyさん mailto:sage [2014/10/04(土) 10:30:15.26 ID:???.net]
- 悪いんだけど、そのテスト結果ってどこに書かれてる?
- 348 名前:nobodyさん mailto:sage [2014/10/04(土) 11:44:46.26 ID:???.net]
- django のテストコード見てみろ
結果は実行してみろよ
- 349 名前:nobodyさん mailto:sage [2014/10/04(土) 11:57:21.96 ID:???.net]
- ポストされたデータの妥当性テスト
https://github.com/django/django/blob/master/tests/forms_tests/tests/test_fields.py https://github.com/django/django/blob/master/tests/file_uploads/tests.py 他心配ならテスト読んでみるといい https://github.com/django/django/tree/master/tests 他のフレームワークと違ってdjangoはmozillaがCVEとかあげてくれてる www.cvedetails.com/vulnerability-list/vendor_id-10199/product_id-18211/Djangoproject-Django.html ここ上がってるバグを他のフォームライブラリーで試してみるといいよ
- 350 名前:nobodyさん mailto:sage [2014/10/04(土) 12:54:37.96 ID:???.net]
- なるほど、ありがと
安心して使うことにする
- 351 名前:nobodyさん mailto:sage [2014/10/04(土) 18:50:26.74 ID:???.net]
- ジャンゴ、ジャンゴ
- 352 名前:nobodyさん mailto:sage [2014/10/04(土) 18:53:08.32 ID:???.net]
- DjangoとcakePHPってどっちが良い?
サーバ公開ならApatcheと簡単に連携できてメンテも簡単なcakePHPかなと思うけど
- 353 名前:nobodyさん mailto:sage [2014/10/05(日) 01:06:59.58 ID:???.net]
- >>348
開発は圧倒的にdjangoかな。
- 354 名前:nobodyさん [2014/10/05(日) 23:02:12.14 ID:5shIACe9.net]
- Djangoってさ、views.pyもだけど、特にforms.pyがとんでもなく長くなってしまうと思うけどどう対処してる?
フォーム登録のあるページを5ページでも作ろうものならその度にclass作って一気に長くなって管理が面倒くさいんだけど
- 355 名前:nobodyさん mailto:sage [2014/10/06(月) 00:23:20.78 ID:???.net]
- views.py が大きくなる時は、
views/__init__py views/foo.py views/bar.py みたいにファイル分割して __init__.py からインポートするようにしてるよ。
- 356 名前:nobodyさん mailto:sage [2014/10/06(月) 01:23:11.52 ID:???.net]
- __init__ で * 展開する奴らを見ると殺したくなる
- 357 名前:nobodyさん mailto:sage [2014/10/06(月) 01:24:20.75 ID:???.net]
- 'views.foo' でいいだろ
- 358 名前:nobodyさん mailto:sage [2014/10/06(月) 01:26:27.04 ID:???.net]
- は???
- 359 名前:nobodyさん mailto:sage [2014/10/06(月) 01:42:28.00 ID:???.net]
- >>350
modelForm使ってるので書くことほとんどない。 あと、対応するmodelのファイルに一緒に入れてる。 models.pyは使ってない。1model1ファイル。 modelが中心だと考えている。
- 360 名前:nobodyさん mailto:sage [2014/10/06(月) 09:45:14.28 ID:???.net]
- forms.IntegerFieldにmax_length入れたら怒られたんだけど、自分はセキュリティ観点上フォームには必ず文字数制限を入れたい
しかも今回の場合は郵便番号の前半と後半部分なので3文字とかしか必要ないんだけど もちろんクライアントサイド側でバリデートはさせるけど どうしたらいいですか?
- 361 名前:nobodyさん mailto:sage [2014/10/06(月) 10:05:58.70 ID:???.net]
- >>> f = ComboField(fields=[CharField(max_length=3),IntegerField()])
>>> f.clean(123) 123 >>> f.clean(1234) Traceback (most recent call last): django.core.exceptions.ValidationError >>> f.clean("aaa") Traceback (most recent call last): django.core.exceptions.ValidationError >>> f.clean("567") 567 >>> f.clean("5678") Traceback (most recent call last): django.core.exceptions.ValidationError
- 362 名前:nobodyさん mailto:sage [2014/10/06(月) 11:13:11.67 ID:???.net]
- うわ、そんなやり方しないといけないの?
widgetとかCharFieldの方に入れるのかな? 何か複雑そうだなぁ 教えてくれてありがと
- 363 名前:nobodyさん mailto:sage [2014/10/06(月) 22:27:56.00 ID:???.net]
- >>356
django.core.validators.MaxValueValidator を使えばもう少し簡潔に書けるかも。 少なくとも、フィールドの型を本来のものと変える必要はなくなる。 使い方 等々、上のパッケージとクラスでググるとドキュメントが出てくるよ。
- 364 名前:nobodyさん [2014/10/08(水) 10:18:30.84 ID:L8w+mBMY.net]
- Django
https://www.youtube.com/watch?v=jn5ajaZgcMw
- 365 名前:nobodyさん mailto:sage [2014/10/08(水) 10:41:42.66 ID:???.net]
- >>360
マルチうぜぇ
- 366 名前:nobodyさん mailto:sage [2014/10/13(月) 23:45:05.77 ID:???.net]
- views.pyを複数ファイルに分割すると
各viewで同じようなimport文を書くことになると思うんですけど これスマートにできませんか? そういうもの割り切るしかないですか?
- 367 名前:nobodyさん mailto:sage [2014/10/13(月) 23:59:05.29 ID:???.net]
- それはしゃーない
- 368 名前:nobodyさん mailto:sage [2014/10/14(火) 11:41:08.90 ID:???.net]
- よくある、ユーザー登録する際にメールアドレスを登録してもらって、
そのメールに1回メールを送ってから、記載されたURLを開いて 存在確認が出来たらユーザー登録を許可するってのをやりたいんだけど、 contrib.authでコツコツ実装する感じですかね? なんか、よくあるパターンなので、いいモジュールがあればと思ったんですが。
- 369 名前:nobodyさん mailto:sage [2014/10/14(火) 16:31:09.62 ID:???.net]
- Flaskならこの本でそのものズバリの内容を
ステップbyステップで解説してるんだがなぁ つか今安いな! この本すごく分かり易いから、 djangoな人にも参考になると思うよ www.amazon.co.jp/gp/aw/d/B00K00W9LI
- 370 名前:nobodyさん mailto:sage [2014/10/14(火) 17:37:58.26 ID:???.net]
- >>365
ステマ乙
- 371 名前:nobodyさん mailto:sage [2014/10/15(水) 00:01:24.58 ID:???.net]
- 和書なら関係者の疑いもわかるが、洋書で
ステマ言われるとは思わんかったわw
- 372 名前:nobodyさん mailto:sage [2014/10/15(水) 16:53:22.20 ID:???.net]
- どうせリンク先見てないんだろ
www.amazon.co.jp/dp/B00K00W9LI www.amazon.co.jp/dp/1449372627
- 373 名前:nobodyさん [2014/10/16(木) 12:01:06.28 ID:QKioo2JW.net]
- Django Version : 1.6.2
pr
- 374 名前:ice = models.PositiveIntegerField(max_length=10, blank=True)
としてsyncdbした後MySQLAdminで確認すると、属性:UNSIGNEDとNULL:いいえとなってる 何でだろ? 自分は空白を許して、正の整数だけで登録したつもりなんだけど どう変えればいいですか? [] - [ここ壊れてます]
- 375 名前:nobodyさん mailto:sage [2014/10/16(木) 14:08:03.63 ID:???.net]
- >>369
null=Trueってなかったっけ。
- 376 名前:nobodyさん mailto:sage [2014/10/16(木) 14:10:13.09 ID:???.net]
- >>369
あ、空白か。空白はcharだから、charを継承したFieldを作らないとじゃないか。
- 377 名前:nobodyさん mailto:sage [2014/10/17(金) 11:21:20.95 ID:???.net]
- 質問させてください
Django+MySQLでトランザクションを実装しようと考えています 最初1.4の日本語訳を読んでいて'django.middleware.transaction.TransactionMiddleware'をsettings.pyに追加したところエラーが出ました そこで調べているうちにバージョン1.6からトランザクション周りが変わったとのことを知りました https://docs.djangoproject.com/en/1.6/topics/db/transactions/ 英語での解説を読むのですが、'django.middleware.transaction.TransactionMiddleware'についての記述が見当たりません これはもはやsettings.pyに書く必要はなくなったのでしょうか?
- 378 名前:nobodyさん mailto:sage [2014/10/17(金) 14:41:47.81 ID:???.net]
- Formって、Class内に一つでも使わないもの入れたらis_valid()通らないのな
ハマった 例えば a = forms.CharField() b = forms.CharField() でHTML内でaのフォームだけ使った場合とか クソ仕様だな
- 379 名前:nobodyさん mailto:sage [2014/10/17(金) 20:54:26.84 ID:???.net]
- >>373
require=Falseにしとけよ。
- 380 名前:nobodyさん mailto:sage [2014/10/18(土) 15:52:42.45 ID:???.net]
- 馬鹿には無理
- 381 名前:nobodyさん mailto:sage [2014/10/18(土) 19:51:18.31 ID:???.net]
- The Zen of Python
- 382 名前:nobodyさん [2014/10/21(火) 18:09:20.88 ID:no1UJMbX.net]
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566
- 383 名前:nobodyさん mailto:sage [2014/11/02(日) 18:02:08.17 ID:???.net]
- ManyToManyにしないといけないところをForeignKeyにしてたわ
やりなおしかったるいからsqliteファイル直接いじって頑張ってみよう。。
- 384 名前:nobodyさん mailto:sage [2014/11/14(金) 12:38:43.15 ID:???.net]
- formsって使ってる?
- 385 名前:nobodyさん mailto:sage [2014/12/12(金) 11:28:40.00 ID:???.net]
- 馬鹿には無理
|

|