Personal tools
You are here: Home Lights on Zope Fullcalendar JSONサーバとSqlite3との関係は?
« March 2017 »
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 31  
Recent entries
Python Anywhere seko 2016-11-19
帯状疱疹 seko 2016-11-18
Chromebook購入 seko 2016-11-03
マカロニさん めざせデータサイエンティスト seko 2016-11-02
脳波計muse 購入 seko 2016-09-04
フェルデンクライスメソッド227回目  seko 2016-08-27
EXCELマクロ タスクが残っていてTypeNameとShell.Applicationを使って起動済みのIEが探せない seko 2016-04-19
pythonでNITE 化学物質総合情報提供システムへアクセス seko 2016-04-19
Raspberry Pi 3で侵入者を発見 seko 2016-04-03
Raspberry Pi 3 OSのインストール seko 2016-04-02
Docker コンテナをexportするpythonスクリプト seko 2016-03-31
Effective Python ―Pythonプログラムを改良する59項目 seko 2016-03-30
確かな力が身につくPython「超」入門 鎌田 正浩 (著) seko 2016-03-29
pythonでバブルソート seko 2016-03-24
Recent comments
Полезные расширение RobertoOnemi 2017-02-17
Ja, det er nok bare http://carinsurancewle.info/NM/Clovis/best-car-insurance-in/ 2017-01-31
‘questa’ http://carinsurancewle.info/AL/Gadsden/car-insurance-rates/ 2017-01-31
zegt:Nog een paar na http://carinsurancequotes24.top/VA/Vienna/average-car-insurance-rates-in/ 2017-01-31
Re:Windows7のpythonからPostgresqlへ接続 通りすがり 2016-08-05
Windows10のpythonからPostgresqlへ接続 森内良子 2016-06-07
Re:二ヶ月ぶりの本屋の姉さん seko 2015-04-22
Re:二ヶ月ぶりの本屋の姉さん Papasan 2015-03-14
Re:インフルエンザで6日寝てた seko 2015-01-22
Re:インフルエンザで6日寝てた Reiko 2015-01-21
Re:サーバー落ちてた owa 2014-11-29
Re:サーバー落ちてた Papasan 2014-10-22
Re:サーバー落ちてた owa 2014-10-22
Re:サーバー落ちてた owa 2014-10-14
Recent trackbacks
カルティエ 指輪 6号 カルティエ 指輪 6号 2017-03-15
カルティエ ガスライター カルティエ ガスライター 2017-03-15
カルティエ 結婚指輪 最安値 カルティエ 結婚指輪 最安値 2017-03-15
世界の高級腕時計 世界の高級腕時計 2017-03-15
カルティエ バッグ カルティエ バッグ 2017-03-15
人気のお財布 メンズ 人気のお財布 メンズ 2017-03-15
カルティエ レディース 時計 カルティエ レディース 時計 2017-03-15
カルティエ リング カルティエ リング 2017-03-15
ロレックスa級品 ロレックスa級品 2017-03-14
カルティエ 銀座二丁目 カルティエ 銀座二丁目 2017-03-14
カルティエ ラブリング 値段 カルティエ ラブリング 値段 2017-03-14
カルティエ ラブブレス カルティエ ラブブレス 2017-03-14
人気のお財布 レディース 人気のお財布 レディース 2017-03-14
カルティエ ブレス カルティエ ブレス 2017-03-13
 
Document Actions

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

by seko posted at 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データを作り出しているということ?
The URL to Trackback this entry is:
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: