1.全体ツリー構造
1-1 ファルダ
TTG_Project
├── README
├── client # クライアントテストツール
│ ├── __pycache__
│ ├── client.py
│ ├── data.py # テストデータ
│ └── run # クライアント起動 ($ ./run)
└── server # Django サーバアプリケーション
├── api # API ファルダー
│ ├── __init__.py
│ ├── __pycache__
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── registerAPI.py # レジスタ用web API
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── build # マイグレション/起動スクリプト
├── clean # キャシュクリヤー
├── conf
│ ├── __init__.py
│ ├── __pycache__
│ ├── settings.py # DB設定等、各種設定
│ ├── urls.py
│ └── wsgi.py # apache 起動入り口
├── env
└── manage.py # 手動起動入り口
2.環境構築
2-1 pythonのインストール
2-2 Djangoのインストール
2-3 プロジェクトの作成
$ mkdir TTG_Project
$ cd TTG_Project
$ django-admin startproject conf
$ mv conf server
$ cd server
$ python36 manage.py startapp api
2-4 settings.pyの編集
$ vi ./conf/settings.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'api.apps.ApiConfig', # 追記
'rest_framework', # 追記
]
# 下記追記
from datetime import datetime, timedelta
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
¦ 'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
¦ 'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
),
'NON_FIELD_ERRORS_KEY': 'detail',
'TEST_REQUEST_DEFAULT_FORMAT': 'json'
}
JWT_AUTH = {
'JWT_SECRET_KEY': SECRET_KEY,
'JWT_ALGORITHM': 'HS256',
'JWT_ALLOW_REFRESH': True,
'JWT_EXPIRATION_DELTA': timedelta(days=7),
'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=28),
}
# 下記ファイル作成を新規に作成
$ vi api/urls.py
from django.urls import path
from . import views
from rest_framework_jwt.views import obtain_jwt_token, verify_jwt_token, refresh_jwt_token
app_name = 'api'
urlpatterns = [
path('token/', obtain_jwt_token),
path('token/verify/', verify_jwt_token),
path('token/refresh/', refresh_jwt_token),
path('v1/register/', views.RegisterAPI.as_view()),
path('v1/cxdnext/', views.CxdnextAPI.as_view()),
]
2-5 conf/urls.pyの編集
$ vi conf/urls.py
from django.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls', namespace='api')), # 追記
]
3 デーベース
3-1 mysqlデータベース設定
$ vi conf/settings.py
import pymysql
pymysql.install_as_MySQLdb()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ttg', # 予め空DBを作成しておく。
'USER': 'admin',
'PASSWORD':'password',
'HOST': '',
'PORT': '',
'OPTIONS': {
'charset': 'utf8mb4',
},
'ATOMIC_REQUESTS': True,
},
'db_ttg': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ttg_data', # 予め空DBを作成しておく。
'USER': 'admin',
'PASSWORD':'password',
'HOST': '',
'PORT': '',
'OPTIONS': {
'charset': 'utf8mb4',
},
'ATOMIC_REQUESTS': False,
}
}
※ mysqlデータベースのインストール方法は省略します。
3-2 データベース構造
drop database ttg_data;
create database ttg_data;
use ttg_data;
create table ttg_cart(
invoice varchar(6) not null comment "伝票コード",
state varchar(2) not null comment "ステータス 00:未処理 01:決済中 99:決済完了",
customerID varchar(16) not null comment "顧客コード",
itemcode varchar(16) not null comment "商品コード",
quantity varchar(10) not null comment "数量",
lastupdate varchar(14) not null comment "最終更新日時",
createtime varchar(14) not null comment "登録日時");
3-3 サンプルデータ
insert into ttg_cart
( invoice, state, customerID, itemcode, quantity, lastupdate, createtime ) values
('000001','00','0000000000000100','0000000000000200',3,'20191008164520','20191008164520'),
('000002','00','0000000000000100','0000000000000300',3,'20191008164520','20191008164520'),
('000003','00','0000000000000100','0000000000000400',3,'20191008164520','20191008164520'),
('000004','00','0000000000000100','0000000000000600',3,'20191008164520','20191008164520'),
('000005','00','0000000000000200','0000000000020100',4,'20191008174520','20191008164520'),
('000006','00','0000000000000200','0000000000020200',4,'20191008174520','20191008164520'),
('000007','00','0000000000000200','0000000000020100',4,'20191008174520','20191008164520'),
('000008','00','0000000000000300','0000000000030200',5,'20191008184520','20191008164520'),
('000009','00','0000000000000300','0000000000030300',5,'20191008184520','20191008164520'),
('000010','00','0000000000000300','0000000000030400',5,'20191008184520','20191008164520'),
('000011','00','0000000000000400','0000000000040100',6,'20191008194520','20191008164520'),
('000012','00','0000000000000400','0000000000040200',6,'20191008194520','20191008164520'),
('000013','00','0000000000000400','0000000000040300',6,'20191008194520','20191008164520');
4. 起動
4-1 起動前準備
1) キャシュクリア
$ vi clean
rm -f api/migrations/000?_initial.py
rm -f api/migrations/000?_auto_*.py
rm -rf api/migrations/__pycache__
2) マイグレションと起動
$ vi build
echo python36 manage.py makemigrations-------------------------------
python36 manage.py makemigrations
echo python36 manage.py migrate--------------------------------------
python36 manage.py migrate
echo python36 manage.py createsuperuser------------------------------
python36 manage.py createsuperuser
echo python36 manage.py runserver 0.0.0.0:8000-----------------------
python36 manage.py runserver 0.0.0.0:8000
4-2 起動
$ ./clean
$ ./build
ユーザID、mail、パスワード入力
2019年10月10日木曜日
登録:
コメントの投稿 (Atom)
zabbix7 amazon linux2023 インストール postgres15
【postgres】 dnf -y install postgresql15-server postgresql15-server-devel postgresql-setup initdb passwd postgres vi `find / -name pg_hba.con...
-
# mount /dev/nvme0n1p3 /mnt/m2 mount: /mnt/m2: 未知のファイルシステムタイプ 'LVM2_member' です. # fdisk -l /dev/nvme0n1 ディスク /dev/nvme0n1: 953....
-
【snmp/snmptrap】 # yum -y install net-snmp # yum -y install net-snmp-utils # yum -y install snmptt # yum install perl-Sys-Syslog # fi...
-
※Status code: 404 for https://dlm.mariadb.com/repo/mariadb-server/10.7.... → Ver.10 サポート切れ!! # dnf remove MareaDB-client # curl -sS https:...
0 件のコメント:
コメントを投稿