サーバレス練習帳

着眼大局着手小局

Django

Django、、、「じゃんご」と読むそうですよ。

qiita.com


qiita.com


≪手順≫※フォルダ移動に気を付けよう!

(1) python7をインストール
www.python.org

(2) virtualenvをインストール

C:¥Users¥hoge> pip install virtualenv


(3) AWS ebcliをインストール

pip install awsebcli --upgrade --user

pathも設定の事
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3-install.html


(4) virtualenvで環境を作る

C:\python>cd env0004

少し待ちます。

当該フォルダに移動してから、アクティベートしましょう。

C:\python>cd env0004
C:\python\env0004>Scripts\activate


(5)djangoのインストール

(env0004) C:\python\env0004>pip install django

"pip install django==2.0.1"という感じで書くと、version指定もできるそうです。

(6)ローカルにアプリを作る

(env0004) C:\python\env0004>django-admin startproject app0004

よし、さっそく実行だ。

(env0004) C:\python\env0004>cd app0004

(env0004) C:\python\env0004\app0004>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 13, 2018 - 19:16:19
Django version 2.0.7, using settings 'app0004.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

動いている~★ ↓↓↓

f:id:urbanplanner:20180713142059p:plain

(7)AWS EB用の設定

(env0004) C:\python\env0004\app0004>pip freeze > requirements.txt
(env0004) C:\python\env0004\app0004>mkdir .ebextensions

.ebextensions内にdjango.configというファイルを作ります。
中身は、こんな感じ。↓↓↓

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: app0004/wsgi.py

app0004部分はアプリ名で置き換えます。

そして、virtualenvから出る。

(env0004) C:\python\env0004\app0004>cd ../
(env0004) C:\python\env0004>Scripts\deactivate
C:\python\env0004>

(8) AWSのアクセスキーを払い出す
面倒だ。
docs.aws.amazon.com

、、、結局、なんだかうまく行かないなぁ。

別記事でリトライしましたところ、できました。コチラから↓↓

serverless.hateblo.jp

JPiere ~ OSSのERPです!

インストール
www.compiere-distribution-lab.net

使い方
www.compiere-distribution-lab.net


idempiere-server.batをクリックして、ここにアクセスします。
http://localhost:8080/webui/


ログイン
www.compiere-distribution-lab.net


名称 ログインID(メールアドレス) パスワード
SuperUser superuser(at)oss-erp.co.jp System
OSS ERP Solutions Admin admin(at)oss-erp.co.jp admin
ユーザー01 user01(at)oss-erp.co.jp password
ユーザー02 user02(at)oss-erp.co.jp password
ユーザー03 user03(at)oss-erp.co.jp password
ユーザー04 user04(at)oss-erp.co.jp password
ユーザー05 user05(at)oss-erp.co.jp password
ユーザー06 user06(at)oss-erp.co.jp password
ユーザー07 user07(at)oss-erp.co.jp password
ユーザー08 user08(at)oss-erp.co.jp password
ユーザー09 user09(at)oss-erp.co.jp password
ユーザー10 user10(at)oss-erp.co.jp password

事例
www.oss-erp.co.jp

【Windowsアプリ】フォントを変える

こんな感じで、HFONTでフォントを定義したらSendMessegeを使って、STATIC(ラベル)やEDITといった子ウインドウのハンドルに送るらしいです。

hFont1 = CreateFont(11, 0, 0, 0,
FW_NORMAL, FALSE, FALSE, 0,
SHIFTJIS_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH, "MS Pゴシック");
//デフォルトフォント
hFont2 = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
//フォント変更のメッセージを送信
SendMessage(testButton1, WM_SETFONT, (WPARAM)hFont1, MAKELPARAM(FALSE, 0));

ameblo.jp

【Windowsアプリ】まずはキホンWindowを作る

もう、全面的にコチラからの引用です。
http://eternalwindows.jp/winbase/base/base05.html

#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpszCmdLine, int nCmdShow)
{
	TCHAR      szAppName[] = TEXT("sample");
	HWND       hwnd;
	MSG        msg;
	WNDCLASSEX wc;

	wc.cbSize        = sizeof(WNDCLASSEX);
	wc.style         = 0;
	wc.lpfnWndProc   = WindowProc;
	wc.cbClsExtra    = 0;
	wc.cbWndExtra    = 0;
	wc.hInstance     = hinst;
	wc.hIcon         = (HICON)LoadImage(NULL, IDI_APPLICATION, IMAGE_ICON, 0, 0, LR_SHARED);
	wc.hCursor       = (HCURSOR)LoadImage(NULL, IDC_ARROW, IMAGE_CURSOR, 0, 0, LR_SHARED);
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName  = NULL;
	wc.lpszClassName = szAppName;
	wc.hIconSm       = (HICON)LoadImage(NULL, IDI_APPLICATION, IMAGE_ICON, 0, 0, LR_SHARED);
	
	if (RegisterClassEx(&wc) == 0)
		return 0;

	hwnd = CreateWindowEx(0, szAppName, szAppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinst, NULL);
	if (hwnd == NULL)
		return 0;

	ShowWindow(hwnd, nCmdShow);
	UpdateWindow(hwnd);
	
	while (GetMessage(&msg, NULL, 0, 0) > 0) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return (int)msg.wParam;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg) {

	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;

	default:
		break;

	}

	return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

さて、CreateWindow関数とCreateWindowEx(CreateWindowExtension:拡張ウインドウ生成)の違いについては以下のリンクで言及されています。
CreateWindowExは、引数が一つ増えて、拡張スタイル(Extension Style)が指定できるようになります。

http://wisdom.sakura.ne.jp/system/winapi/win32/win7.html