まず、html部分
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
</head>
<body>
ロード中:
<div class="progress progress-striped">
<div class="bar" id="progress" style="width: 1%;"></div>
</div>
<script type="text/javascript">
function changeBar(progress) {
document.getElementById("progress").style.width = progress+"%";
}
</script>
</body>
</html>
javascriptからプログレスバーのwidthの値を変えるように設定します。
php
<?php
$nCount=1;
for($i=0;$i<10000000;$i++){
if($i % 100000 == 0) {
echo '<script type="text/javascript">changeBar("' . $nCount . '")</script>';
ob_flush();
flush();
$nCount++;
}
}
echo でjavascriptを吐き出し ob_flush, flushで呼び出すようにします。
これで動くはずです。
formでアップロードしたファイルのファイル名の取得方法
#model
db.define_table('hoge',
Field('filedata', 'upload')
migrate=settings.migrate
)
なテーブルの場合、下記のようにして取得できます。
request.vars.filedata.filename
auth クラスでログインした場合
auth.is_logged_in()
ログイン中だとTrueが返ってきます。
いつも調べてて面倒なので、備忘録。
/data/class_extends/SC_SendMail_Ex.php
, は使っているメールの設定をしてください。
function SC_SendMail_Ex() {
parent::SC_SendMail();
}
// 追加
function getBackendParams($backend) {
$arrParams = parent::getBackendParams($backend);
switch ($backend) {
case "mail":
case "sendmail":
break;
case "smtp":
default:
$arrParams['auth'] = true;
$arrParams['username'] = '<id>';
$arrParams['password'] = '<pw>';
break;
}
return $arrParams;
}
管理画面の設定
MAIL_BACKEND “smtp”
SMTP_HOST “<お使いのSMTPサーバー>”
SMTP_PORT “587″
web2pyのuploadsフォルダはアクセスできない仕様のようです。
ただ、見られる用にするにはdownloadメソッドを使います。
<img src="{{=URL('project','default/download', hoge.image)}}" />
みたいな感じでdownloadフォルダを指定してイメージパスを引数で渡してあげれば
OKです。
過去記事が崩れてます。
すみません。。。
読まれてるのはおいおい直していきます。
web2pyはmodelsフォルダ内が自動的に呼ばれるそうです。
なので、modelフォルダ内に適当なファイルを作ってそこに入れておけばOKです。
models/functions.py とか
これでOKです。
layoutに手を入れると
adminでエラーになるときがあります。
adminのレイアウトだけ別ファイルを指定します。
appadmin.html
1行目
{{extend 'layout.html'}}
↓
{{extend 'layout.original.html'}}
元のlayout.html を layout.original.html で保存しておく。
逆パターンが正しいやり方なのかな。
{{response.write("hogehoge<br/>fugafuga<br/>", escape=False)}}
{{=hoge}} ではなくて、 response.write を使って escapeでFalseを設定します。
csv_data = "hoge,fugi,hagu"
result_data = csv_data.split(",")
print result_data
["hoge","fugi","hagu"]
以上です。