bottleを使ってみた
環境
OS: CentOS7
vagrant上にある
PythonのWebフレームワークにbottleというものがあるらしいので使ってみた
bottleの使う準備をして、サンプルコードを書いてみた
from bottle import route, run @route('/hello') def hello(): return "Hello World!" # サーバーのIPアドレスをhostの部分に記述する run(host="192.168.33.10", port=8080, debug=True)
192.168.33.10:8080/hello にアクセスしたら画面が表示された!!
簡単!!
PostgreSQL INSERT/UPDATE時に現在時刻のTIMESTAMPを入れたいとき
環境
OS: CentOS7
PostgreSQL: 9.6.1
vagrant上で動作
SQLでINSERT/UPDATEするときにその時の時刻のTIMESTAMPを入れたいときがある
[current_timestamp] を使えば一発!!
INSERT INTO m_listener (socialid, userid, username, create_at) VALUES (%s, %s, %s, current_timestamp);
CentOS7 システムタイムゾーンを設定
環境
OS: CentOS7
vagrant上にある
なぜこれをしたいのか
unix時間をタイムスタンプに変換したら、おかしな結果になったから日本時間にできないかと思い、調べてみた
解決法
timedatectlを使う
まずはリストを表示してみる
$ timedatectl list-timezones ... Asia/Tokyo ...
東京があるから、タイムゾーンを東京にしてみる
$ timedatectl set-timezone Asia/Tokyo
これでタイムゾーンが東京になった
$ timedatectl Local time: Sat 2017-03-11 11:27:17 JST Universal time: Sat 2017-03-11 02:27:17 UTC RTC time: Sat 2017-03-11 02:27:15 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
参考サイト
CentOS 7 : システムのタイムゾーンを設定する : Server World
メモ
datetimeのdatetimeのfromtimestamp()を使う
8.1. datetime — 基本的な日付型および時間型 — Python 3.6.0 ドキュメント
>>> import datetime >>> unixTime = 1489200576 >>> unixTime 1489200576 >>> timeStamp = datetime.datetime.fromtimestamp(unixTime) >>> timeStamp datetime.datetime(2017, 3, 11, 11, 49, 36) >>>
SQL 複合キーの設定
テーブル作成時に複合主キーを設定するときには
CONSTRAINT を使う。
CONSTRAINT 複合主キーにつける名前 PRIMARY KEY (カラム名1, カラム名2, ...)
-- 貸出管理表 CREATE TABLE RENTAL_MANAGEMENT ( MEMBER_CODE CHAR(5) NOT NULL REFERENCES M_MEMBER (MEMBER_CODE), BOOK_CODE CHAR(9) NOT NULL REFERENCES M_BOOK (BOOK_CODE), STAFF_CODE CHAR(3) NOT NULL REFERENCES M_STAFF (STAFF_CODE), RENTAL_DATE TIMESTAMP NOT NULL, RETURN_DEADLINE TIMESTAMP NOT NULL, CREATE_DATE TIMESTAMP NOT NULL, CREATE_USER CHAR(3) NOT NULL, UPDATE_DATE TIMESTAMP, UPDATE_USER CHAR(3), CONSTRAINT PK_RENTAL_MANAGE PRIMARY KEY (MEMBER_CODE, BOOK_CODE, RENTAL_DATE) );
Java staticメソッドで .getCalss() の代用
クラス名.class で this.getClass() はほとんど同じらしい
staticだと、thisが使えないため、クラス名.class を使う
public class MyClass { public static void sayHello() { ClassLoader loader = MyClass.class.getClassLoader(); // 以下に処理が続くと想定 } }
vagrant up できなくなった
$ vagrant up Vagrant can't use the requested machine because it is locked! This means that another Vagrant process is currently reading or modifying the machine. Please wait for that Vagrant process to end and try again. Details about the machine are shown below: Name: default Provider: virtualbox
となって、起動できない...
PC再起動したらできた
完