Personal tools
You are here: Home Lights on Zope Fullcalendar JSONサーバとSqlite3との関係は?
« November 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
Ingressで27km歩いたら筋肉が柔らかに seko 2014-11-03
pipをバージョンアップ seko 2014-10-22
Proxy環境下のWindowsでpipを使う seko 2014-10-22
星間商事株式会社社史編纂室 [Kindle版] seko 2014-09-23
トラックバックが2500個 seko 2014-09-21
サーバー落ちてた seko 2014-09-20
Ingressのために購入したアイテム seko 2014-08-16
Ingressで健康に seko 2014-08-16
FirefoxのSQLite Manager アドオン seko 2014-07-22
Pythonの軽量フレームワーク Bottleを使ってみる seko 2014-07-20
バベットの晩餐会 HDニューマスター [DVD] seko 2014-07-13
驚くほど日常生活を楽にする 武術&身体術 「カラダの技」の活かし方 (DVDブック) 甲野善紀 (著), 甲野陽紀 (著) seko 2014-07-12
国家はなぜ衰退するのか 権力・繁栄・貧困の起源 [Kindle版] ダロン・アセモグル (著), ジェイムズ・A・ロビンソン (著) seko 2014-07-06
「ニセ医学」に騙されないために 危険な反医療論や治療法、健康法から身を守る! NATROM (著) seko 2014-07-06
Comentários recentes
Re:サーバー落ちてた Papasan 2014-10-22
Re:サーバー落ちてた owa 2014-10-22
Re:サーバー落ちてた owa 2014-10-14
Re:サーバー落ちてた Papasan 2014-10-10
Re:サーバー落ちてた owa 2014-10-10
Re:サーバー落ちてた Reiko 2014-09-28
Re:サーバー落ちてた Papasan 2014-09-27
Re:サーバー落ちてた Reiko 2014-09-27
Re:サーバー落ちてた seko 2014-09-24
Re:サーバー落ちてた Papasan 2014-09-23
Re:サーバー落ちてた seko 2014-09-21
Re:サーバー落ちてた Reiko 2014-09-21
taruhanbolaterbesar asia 2014-09-01
Re:Ingressのために購入したアイテム owa 2014-08-19
Trackbacks recentes
北京信用卡取现 [图文]喷水翻腾飞行背包Flyboard 2014-11-24
maglia messico mondiali 2014 maglie calcio originali maglie calcio personalizzate-68326-462 2014-11-24
Hollister Rotterdam Online U9242 Hollister Pas Cher EW5A8 H9B6V53N hollister madrid 2014-11-24
christinecoe.co.uk V3144 hollister JH1R2 T2G7S57R http://www.worldwayweb.com/Moncler.asp 2014-11-24
杭州信用卡代还 李鸿章为谋求与孙中山会晤 暗助革命党3万光洋【图】 2014-11-24
西安信用卡代还 吕雉皇后秘史 2014-11-24
北京信用卡套现 青海湖畔发现3000多年前人类活动遗址 2014-11-24
成都喷码机 世界军史五大宝藏之迷 2014-11-24
北京代还信用卡 武则天为何改国号为周?揭秘武则天国号为周的原因是什么? 2014-11-24
浙江睡袍 贵阳公交纵火嫌犯身份曝光:疑妻有婚外情报复社会 吴某照片曝光【图】 2014-11-23
乐山信用卡取现 乌克兰宣布从克里米亚乌撤军包括军人家属 2014-11-23
北京信用卡代还款 因贪腐被毛泽东亲批处死的中共高官:左祥云为246元丧命【图】 2014-11-22
沈阳月嫂价格 [图文]中国盗墓史上“活见鬼”之谜:死者面若生人 2014-11-22
nuova maglia napoli numeri maglie calcio magliette serie a 2014-72546-627 2014-11-22
 
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: