Personal tools
You are here: Home Lights on Zope Fullcalendar JSONサーバとSqlite3との関係は?
« April 2014 »
Su Mo Tu We Th Fr Sa
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
Entradas recentes
九月、東京の路上で 1923年関東大震災ジェノサイドの残響 seko 2014-04-20
問題解決シート:Zopeのオブジェクトを定期的にコピーする seko 2014-04-19
ヒューマン なぜヒトは人間になれたのか seko 2014-04-18
機械との競争 [Kindle版] seko 2014-04-17
今日も耳鳴りがひどい seko 2014-04-16
盛大な耳鳴り seko 2014-04-15
こころが軽くなるノート seko 2014-04-15
なぜ、あなたの薬は効かないのか? seko 2014-04-15
ブッダの経営論 seko 2014-04-15
“ありのまま”の自分に気づく seko 2014-04-15
人間の未来 ――ヘーゲル哲学と現代資本主義 seko 2014-04-15
メガネ踏んじゃった seko 2014-04-15
Kindle Paperwhite 2013でもエラー seko 2014-04-14
脳内麻薬 人間を支配する快楽物質ドーパミンの正体 seko 2014-04-10
Comentários recentes
Re:問題解決シート:Zopeのオブジェクトを定期的にコピーする Papasan 2014-04-20
Re:また目眩が Papasan 2014-04-08
Re:また目眩が seko 2014-04-07
Re:また目眩が Papasan 2014-03-31
Re:Fitbit Force 怪しいリコールメール seko 2014-03-25
Re:Fitbit Force 怪しいリコールメール Papasan 2014-03-23
Re:床屋に行ったら男前 Papasan 2014-03-07
Re:正ちゃんどっかにいっちゃった Papasan 2014-03-07
Re:正ちゃんどっかにいっちゃった seko 2014-03-07
Re:正ちゃんどっかにいっちゃった Papasan 2014-03-06
Re:マカロニさん 正ちゃんとタッチ seko 2014-02-03
Re:マカロニさん 正ちゃんとタッチ Papasan 2014-02-01
Re:下痢と嘔吐 seko 2014-01-08
Re:下痢と嘔吐 Papasan 2013-12-31
Trackbacks recentes
まんが 哲学入門 天竺堂の本棚 2014-02-24
史上最強の哲学入門 東洋の哲人たち 天竺堂の本棚 2014-02-19
「本屋さんで待ち合わせ」三浦しをん 粋な提案 2013-10-01
PythonでCPUの数を調べる。 ヲドリテヒヅル 2012-12-03
ぼくはお金を使わずに生きることにした 紹介 感想 わかめになりたい 2011-12-02
au の HTC EVO がなかなか良かった話 tdtshのブログ 2011-05-25
逆転経済の反響 世界一のバイヤーになってみろ!!坂口孝則の本棚と雑文 2010-12-27
Who Moved My Cheese? 大学生の気ままな書評 おすすめ和書・洋書! 2010-10-30
sekoさんちからPOSTがあったけど・・・ PapaBlog 2010-09-12
Squid(キャッシュサーバーモード)を試してみる PapaBlog 2010-08-25
Apache 2.2のキャッシュ機能を使ってみる PapaBlog 2010-08-08
愛と資本主義 中村うさぎ ばみの乱読日記 と猫雑貨。 2010-08-07
Flowplayerがバージョンアップしてスッキリしていた PapaBlog 2010-06-06
荻原規子 「レッドデータガール はじめてのお化粧」 ゼロから 2010-06-01
 
Document Actions

Fullcalendar JSONサーバとSqlite3との関係は?

by seko publicado em 2011-05-25 21:51 last modified 2011-05-25 21:51

マカロニさんからFullcalendarへのプレッシャーが強まってきました。

リレーショナルデータベースにあるデータをSQLで読み取って、カレンダーに表示させることはできそうです。

しかし、カレンダー上に書き込んだり、移動したりしたデータをどうやってデータを保存するのか分かりません。 単純にリレーショナルデータベースに書き込むのではなさそうです。

Papasanは、JSONサーバ とSqlite3を使っているようです。

いろいろ分からないので、責められています。

Papasan内緒で助けてください!

  • JSONサーバとSqliteの関係は? Sqliteは検索のためだけに使っている?
  • そもそもJSONサーバって何?
  • JSONサーバっていうのもSQLで操作するの?
  • JSONサーバからデータを読むときはすべてのデータを読む?
  • JSONサーバはどうやって作るの?
  • JSONサーバとZopeのData.fsとの関係は?
  • JSONサーバーからクライアントにデータを返す例(Extensions)は、SqliteのデータからJSONデータを作り出しているということ?
O URL para efectuar trackback desta entrada é:
http://lightson.dip.jp/blog/seko/2488/tbping

Re:Fullcalendar JSONサーバとSqlite3との関係は?

Posted by Papasan at 2011-05-25 22:59
こっそりですよ!!

Q1. JSONサーバとSqliteの関係は? Sqliteは検索のためだけに使っている?
A1. JSONサーバー(Zope)でJavaScriptの要求を受付け、Pythonの外部スクリプト(Extensionsフォルダ内)を呼び出します。外部メソッドからPythonのsqlite3モジュールをインポートしてSqlite3データベースにSQLでアクセスしています。

Q2. そもそもJSONサーバって何?
A2. ブラウザのJavaScriptと直にデータをやりとりするためのサーバーです。(と思う)

Q3. JSONサーバっていうのもSQLで操作するの?
A3. JSONサーバーはHTTPサーバーの一種(?)ですのでGET、POSTなどのメソッドを使用します。データーベースサーバーではありませんのでSQLでは操作しません。

Q4. JSONサーバからデータを読むときはすべてのデータを読む?
A4. FullCalendarがイベントデータを要求するときに自動でクエリーパラメータを付与して要求します。このパラメーターは、表示しようとするカレンダーの開始日時と終了日時のエポックタイムです。
    なので、JSONサーバー側はこの開始日時と終了日時の範囲にあるイベントデータを返します。

Q5. JSONサーバはどうやって作るの?
A5. Zopeの外部スクリプト(Extensionsフォルダ内)で、import sqlite3 とやればできます。

Q6. JSONサーバとZopeのData.fsとの関係は?
A6. 基本的には無関係です。

Q7. JSONサーバーからクライアントにデータを返す例(Extensions)は、SqliteのデータからJSONデータを作り出しているということ?
A7. まさに、その通りです。

Tip: FirefoxのFirebugでJSONサーバーとJavaScriptがやりとりしているデータ(JSONデータ)そのものを見ることができます。

Re:Fullcalendar JSONサーバとSqlite3との関係は?

Posted by Papasan at 2011-05-25 23:05
訂正:
Q5. JSONサーバはどうやって作るの?
A5. Zopeの外部スクリプト(Extensionsフォルダ内)で、import json とやればできます。

Re:Fullcalendar JSONサーバとSqlite3との関係は?

Posted by Papasan at 2011-05-25 23:44
補足:
Q0. カレンダー上に書き込んだり、移動したりしたデータをどうやってデータを保存するのか分かりません。
A0. FullCalendarには色々なコールバック関数が用意されています。

例えば、カレンダー上に書き込んだときは次のようになります。

select: function(startDate, endDate, allDay, jsEvent, view) {
[...]
$.ajax({url: "/jsonserver/papacalendar/post_event", // JSONサーバーに要求を送信
type: 'post',
dataType: 'json',
data: {
"id": eventId,
"title": dialogTitle,
"start": eventStartDate.getTime(),
"end": eventEndDate.getTime(),
"reminder": eventReminder.getTime(),
"allDay": dialogAllDay,
"className": dialogTag,
"desc": dialogDesc,
"owner": owner
},
success: function() { // JSONサーバーにて登録OK
$('#calendar').fullCalendar('renderEvent',
{
id: eventId,
title: dialogTitle,
start: dialogStartDate,
end: dialogEndDate,
reminder: dialogReminder,
allDay: dialogAllDay,
className: dialogTag,
desc: dialogDesc,
owner: owner
},
false // サーバからはページ表示時のみイベント表示する。
);
$("#dialog-form").dialog("close");
},
error: function() { // JSONサーバーからエラーの応答が返ってきたとき。
updateTips("!!登録に失敗しました、中止ボタンをクリックして下さい。");
}
});
calendar.fullCalendar('unselect'); // select状態を解除する。
},


移動したときは次のようになります。

// イベントの移動
eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {
// 権限確認
if (event.owner && event.owner != owner) {
if (!managerRole) {
revertFunc();
return;
};
};

var eventStartDate = event.start.getTime() / 1000;
if (event.end) {
var eventEndDate = event.end.getTime() / 1000;
};

if (event.reminder) {
var eventReminder = (event.reminder.getTime() / 1000) + (dayDelta * 86400) + (minuteDelta * 60);
} else {
var eventReminder = eventStartDate;
};

$.ajax({url: "/jsonserver/papacalendar//change_event",
type: 'post',
dataType: 'json',
data: {
"id": event.id,
"title": event.title,
"start": eventStartDate,
"end": eventEndDate,
"reminder": eventReminder,
"allDay": allDay,
"className": event.className,
"desc": event.desc,
"owner": event.owner
},
success: function() {
},
error: function() {
alert("!!移動に失敗しました。");
revertFunc();
}
});
},

Re:Fullcalendar JSONサーバとSqlite3との関係は?

Posted by seko at 2011-05-26 18:57
ありがとうございます。これで何とか師匠の面子を保てるかもしれません。

以前、素のZope DBを使ってJSONみたいな記事があったという記憶があり、JSONサーバというのはJSONデータを保管するサーバなのかなと思っていました。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)


Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: