記録として残しておきたいブログ

主にプログラミングについて書きます。現在は http://tmg0525.hatenadiary.jp/ に書いています。

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);


stackoverflow.com

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



メモ

PythonUNIX時間からタイムスタンプの取得

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再起動したらできた