MASTER →  ADMIN / NEW ENTRY / COMMENT
oTreeで実験したときのServer設定です。
ServerにはHerokuというものを用いました(oTreeの説明ページ→Basic Server Setup (Heroku))。
自分でサーバーをセットアップする必要がなく、コマンドプロンプト上で自分のPCから設定可能。PaaSの一種っぽい。



①Herokuへアクセスし、アカウントを作成
※その際に、Pythonを選択すること

②自分のPCのコマンドプロンプトをひらき、パスでoTreeへ移動
>cd oTree

③コマンドプロンプトで、以下のコマンドを入力しherokuにログイン
>heroku login
※EmailとPassが聞かれるので①で作成したものを入力する

④コマンドプロンプトで、以下のコマンドを入力
>git init
>heroku create プロジェクト名

⑤アドオンのインストール
https://elements.heroku.com/addons/heroku-redisをインストールする
※無料だが、クレジットカードの登録が必要。登録せず、進んだら、⑥のopenでエラーがでた。

⑥コマンドプロンプトにて、以下のコマンドを入力
>pip3 install -U otree-core
>pip3 freeze > requirements_base.txt
※エラーがでた場合は、こっち>pip3 freeze | out-file -enc ascii requirements_base.txt

===============
>git add .
※カレントディレクトリに追加
>git commit -am "your commit message"
※who ...みたいなエラーがでたから、メールアドレスを登録した。
git config --global user.email "you@example.com"
誰が、変更したのか履歴を残すためだと思われる。

>git push heroku master

>heroku run otree resetdb
※注意:サーバーにあるデータが全部処理されます。

>heroku open
※エラーがでた場合は⑤を確認
===============

これで、1000時間無料の設定終了。
二回目以降は、=====の部分からでOK。

時間がもったいないから、使用しないときはメンテナンスにする。
メンテナンスオン:heroku maintenance:on
メンテナンスオフ:heroku maintenance:on

無料の残り時間の確認は
heroku ps






> Your database is not ready. Try running 'otree resetdb'.

が表示された場合についてです。


これは、新しいプロジェクトやmodel.pyで新しくデータベース登録項目(Excel
に保存されるやつ)を増やしたとき等に起こります。

コマンドプロンプトで
otree resetdb
と、入力しデータベースを初期化すれば直ります。
ただし、今まで集めたデータが全て消えます(全プロジェクトです)
なので、もしデータを保存していない場合だと、このエラーがでる前の状態に戻して、
データを保存してから、初期化するようにした方がよいでしょう。

メモ:他にやりかたあるのかな?

oTree初期インストール時の
デモプログラム【prisoner】で例を示します。

Decisionの画面です。Google choromeでひらいています。


画面ではこうなっています ↑ 。

この画面の中身が、Decision.htmlのソースコードです。




Decision.htmlをブラウザを通してみると、画面になるというイメージです。
例えば、上記画像:赤枠の [ You ] を [ あなた ] と変更してみます。




画面上でも[ あなた ] となりました。



Decision.htmlのソースコード変更すれば、色々な画面を作ることができます。
ためしに、あなたを横書きにして、背景色をつけてみました。




oTree インストールおよび起動ができている状態で、Pycharmでひらいています。
インストール方法について→【実験】oTree インストール方法
ファイル構成について  →  2-1【実験】oTree のなかみ (ファイル構成) 
view.pyについて      →   2-2【実験】oTree views.py

◆ model.py
class Constants(BaseConstants):
>該当プロジェクトの大枠を設定する場所であり、定数を置く場所のイメージ。

name_in_url = 'XXXXXXXX'
>URLの名前。settings.pyファイル(詳細:(準備中))と同一にしておく必要がある。


num_rounds = 5
view.pyのpage_sequenceで設定したページを何回繰り返すか。ここでは、5回繰り返す設定にしている。
※ 詳細  2-2【実験】oTree views.pyのpage_sequenceを参照。



他にも、画面から被験者の入力ではなく、システム側で設定する定数や定型文、配列を設定できる。
例えば、
----------------------
training_1_choices = [
'Alice gets hoge points, Bob gets 0 points',
'Alice gets 200 points, Bob gets 200 points',
'Alice gets 0 points, Bob gets 300 points',
'Alice gets 100 points, Bob gets 100 points'
]
----------------------
と、設定する。これは、画面上でラジオボタンで選べるようにできる。
まず、class Player(BasePlayer): で設定する。

class Player(BasePlayer):
>該当プロジェクトで入力された値をExcel(データベース)に入力するところのイメージ。
class Player(BasePlayer)にて、以下の通り設定する。
----------------------
training_question_1 = models.CharField(
choices=Constants.training_1_choices,
widget=widgets.RadioSelect(),
)
----------------------
choices=の部分に、class Constantsで設定したtraining_1_choicesを設定しているのが分かる。
widgetは、それをラジオボタンで選べるように(RadioSelect)を指定している。
Question.htmlを開いてみると、
----------------------
{% formfield player.training_question_1 with label='Suppose Alice chose to defect and Bob chose to cooperate. How many points would Alice and Bob receive, respectively?' %}
----------------------
がある。ここで、表示している。





入力された値は、【player.training_question_1】 の名前でデータ保存(データベース、何もしてなければExcelファイルの列名として)されている。





class Subsession(BaseSubsession):
→詳細:(準備中)

class Group(BaseGroup):
→詳細:(準備中)

oTree インストールおよび起動ができている状態で、Pycharmでひらいています。
インストール方法について→【実験】oTree インストール方法
ファイル構成について  →  2-1【実験】oTree のなかみ (ファイル構成)


◆ view.py

class 名は、html名と対応しています。



例えば
Introduction.htmlに対応しているのが、
class Introduction(Page):
になります。

同じくview.pyにある【page_sequence】というところで、どのページ(html)を出すかが決定しています。
つまり、Introduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html の順番に表示します。




何回繰り返すかというのは、model.pyの【num_rounds】で回数を指定してください。
※詳細はこちら→(準備中)


【page_sequence】で指定したページは、
model.pyの【num_rounds】で指定した回数1回ずつ繰り返されます。
例えば、num_rounds=3としていすると、
Introduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html →(2回目)Introduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html →(3回目)ntroduction.html → Question.html .html → Feedback1.html → Decision.html → ResultsWaitPage.html → Results.html という形で表示されます。


例えば、10回目のラウンドだけ、表示したいページ(html)があれば、
こちらを参照してください→(準備中)。


 1  2  3  ≫
HOME
【お知らせ】
◆お問合せ 88.hakumai.saiko@gmail.com

◆ホームーページ 08 -ゼロハチ-

◆Twitter はじめました。 @zerohachi_008 ゼロハチ
ブログ内検索
スポンサーサイト
カレンダー
09 2018/10 11
S M T W T F S
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
スポンサーサイト
スポンサーサイト