출처: kimkkikki.github.io/flask/2019/03/15/flask_react_router.html

 

Kimkkikki Blog

이런저런 개발이야기

kimkkikki.github.io

 

테스트하다보니 현재 기준으로 안되는 부분들이 있어서 일부 수정했다.

package.json

{
  "name": "flask_react_router",
  "version": "1.0.0",
  "private": true,
  "devDependencies": {
    "@babel/core": "^7.2.2",
    "@babel/plugin-proposal-class-properties": "^7.3.0",
    "@babel/plugin-proposal-decorators": "^7.3.0",
    "@babel/polyfill": "^7.2.5",
    "@babel/preset-env": "^7.3.1",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "^8.0.5",
    "css-loader": "^2.1.0",
    "file-loader": "^3.0.1",
    "mini-css-extract-plugin": "^0.5.0",
    "postcss-loader": "^3.0.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.23.1",
    "webpack": "^4.46.0",
    "webpack-cli": "^4.5.0"
  },
  "dependencies": {
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-router-dom": "^4.3.1"
  }
}

private: true 추가

 

App.js

import React from 'react'
import { Route } from 'react-router-dom';
import First from './containers/First';
import Second from './containers/Second';

const App = () => {    
	return (
		<>
			<Route path='/first' component={ First } />
			<Route path='/second' component={ Second } />
		</>
	);
}

export default App;

함수 베이스로 수정

 

First.js, Second.js

import React, { Component } from 'react';

const First = () => {
	return (
		<div>Hello First</div>
	);
};

export default First;

이것도 함수 베이스로 수정

 

잘 돌아간다.

css 파일이 없어서 생기는 에러는 import한 css 파일이 없어서 생긴 문제라서 빈 css 파일을 만들어서 import하고 webpack 해주면 flask_react_router.css이 생성되면서 해결된다.

오류내용

The connection is already established with a locale different from of the request: English [en_US]

 

해결

서버 매니저에 접속 http://[teamcenter server hostname]:[portnumber]/tc/admin (OS 비번/아이디)

왼쪽사이드에서 서버를 선택

비즈니스 논리 서버 인스턴스에서 해당 사용자를 찾아서 선택하고 그 아래에 있는 서버중지 버튼을 누르면 끝

 

delete from pom_m_lock where ref_uid=any(select puid from ppom_session where puser_name='아이디');
delete from pom_r_lock where ref_uid=any(select puid from ppom_session where puser_name='아이디');
delete from pom_f_lock where ref_uid=any(select puid from ppom_session where puser_name='아이디');

총 라이선스 수량은 라이선스 파일 하단 혹은 lmtools에서 Server Status탭에서 Perform Status Enquiry 버튼을 눌러서 파악

잔여수량은 쿼리로

SELECT sum(1) FROM PPOM_USER where pstatus=0 and plicense_level=0; -- author
SELECT sum(1) FROM PPOM_USER where pstatus=0 and plicense_level=1; -- consumer

count(*) 보단 sum(1) 이 빨라서 선호함

 

오류내용

jt 데이터셋 선택후 JT 미리 보기 탭 눌렀을때 알림내용

The SingleEmbeddedViewer.jar(TC 설치 경로) file, does not mach the The SingleEmbeddedViewer.jar(TC Vis 설치 경로) Please copy file, (TC Vis설치 경로), to (TC 설치 경로) and restart the application or contact a System Administrator for assistance. Embedded Visualization will be disable until this inconsistency is resolved.

 

원인

TC Vis 설치 후 Vis 포함된 OTW로 TC 설치 시 Vis 에러가 발생함

 

해결

메시지에 나온대로 TC Vis에 있는 SingleEmbeddedViewer.jar 를 TC 로 복사하고 TC를 종료하고 재시작하게 되면 오류도 해결되고 툴 바에 Vis 아이콘도 보인다.

 

오류내용

상단 툴 바에 Vis 아이콘이 안 보인다.

 

해결

편집 -> 옵션에서 -> 비주얼라이제이션 -> Lifecycle Visualization -> "Lifecycle Visualization에서 열기" 명령 표시: 예 체크

 

 

0. 탐색기 숨은 파일 보기 설정

> 보기 > 옵션 > 폴더 및 검색옵션 변경 (윈도우10 기준)

> 보기탭 > 고급설정

> 숨김 파일 및 폴더 > 숨김 파일, 폴더 및 드라이브 표시에 체크

> (옵션) 알려진 파일 형식의 파일 확장명 숨기기는 체크 해제


1. Apache Ant 설치

> https://ant.apache.org/bindownload.cgi 에서 다운로드

> 통상 C:\Program Files 에서 압축해제

> 환경변수 설정

   ANT_HOME = C:\Program Files\apache-ant-1.10.1

   path += %ANT_HOME%\bin


2. Node.js 설치

> https://nodejs.org/ko/ 에서 다운로드

> 케바케겠지만 난 LTS 설치


3. Cordova 설치

> cmd

> npm install -g cordova

> 환경변수 설정

   path += C:\Users\[사용자명]\AppData\Roaming\npm

   path += C:\Users\[사용자명]\AppData\Roaming\npm\node_modules\cordova\bin


4. jQuery Mobile 설치

> 3 커맨드 창에 이어서

> npm install jquery


5. Cordova-jQuery 설치

> 4에 이어서

> npm install cordova-jquery


6. Cordova Project 생성

> 프로젝트가 생성될 위치로 이동후 Shift + 마우스 우클릭해서 콘솔창 열기

> 혹은 cmd 후 프로젝트가 생성될 위치로 능력껏 이동 (cd 절대경로)

> cordova create 프로젝트명


7. jQuery Mobile Template Injection

> 6에 이어서

> cd 프로젝트명

> cordova-jquery

> 원하는 템플릿 선택 (템플릿 참고링크 https://www.npmjs.com/package/cordova-jquery)


8. Cordova Project Platform Add

> 7에 이어서

> cordova platform add android


9. Android Studio Import

> 안드로이드 스튜디오 실행 후 open

> 프로젝트명\platforms\android

> 위의 경로로 OK하면 된다


<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:gravity="center_horizontal"

    android:layout_width="match_parent"

    android:layout_height="match_parent">


    <RelativeLayout

        android:id="@+id/layout_form"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:layout_marginTop="120dp"

        >


        <TextView

            android:id="@+id/viewText_name"

            android:text="이      름"

            android:textSize="20dp"

            android:layout_width="100dp"

            android:layout_height="34dp"

            android:layout_marginRight="10dp"

            android:gravity="center_horizontal"

            />


        <EditText

            android:id="@+id/text_name"

            android:layout_width="150dp"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/viewText_name"

            android:layout_alignBaseline="@+id/viewText_name"

            android:maxLength="20"

            android:maxLines="1"

            android:inputType="text|textCapWords"

            />


        <TextView

            android:id="@+id/viewText_age"

            android:text="나      이"

            android:textSize="20dp"

            android:layout_width="100dp"

            android:layout_height="34dp"

            android:layout_marginRight="10dp"

            android:layout_below="@id/viewText_name"

            android:gravity="center_horizontal"

            />


        <EditText

            android:id="@+id/text_age"

            android:layout_width="150dp"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/viewText_age"

            android:layout_alignBaseline="@+id/viewText_age"

            android:maxLength="3"

            android:maxLines="1"

            android:inputType="number"

            />


        <TextView

            android:id="@+id/viewText_birthday"

            android:text="생년월일"

            android:layout_width="100dp"

            android:layout_height="34dp"

            android:layout_marginRight="10dp"

            android:layout_below="@id/viewText_age"

            android:textSize="20dp"

            android:gravity="center_horizontal"

            />

    </RelativeLayout>


    <Button

        android:id="@+id/button_birthday"

        android:layout_width="200dp"

        android:layout_height="wrap_content"

        android:onClick="onButtonBirthdayClicked"

        />


    <Button

        android:id="@+id/button_save"

        android:text="저 장"

        android:onClick="onButtonLoginClicked"

        android:layout_width="100dp"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:layout_marginTop="20dp"

        />

</LinearLayout>


public class MainActivity extends AppCompatActivity {

    TextView viewText_name;

    EditText text_name;


    TextView viewText_age;

    EditText text_age;


    TextView viewText_birthday;

    Button button_birthday;


    Button button_save;


    SimpleDateFormat sdf;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        viewText_name = (TextView) findViewById(R.id.viewText_name);

        text_name = (EditText) findViewById(R.id.text_name);

        viewText_age = (TextView) findViewById(R.id.viewText_age);

        text_age = (EditText) findViewById(R.id.text_age);

        viewText_birthday = (TextView) findViewById(R.id.viewText_birthday);

        button_birthday = (Button) findViewById(R.id.button_birthday);

        button_save = (Button) findViewById(R.id.button_save);


        sdf = new SimpleDateFormat("yyyy년 MM월 dd일");

        button_birthday.setText( sdf.format(Calendar.getInstance().getTime()) );

    }



    public void  onButtonBirthdayClicked(View v) {

        Calendar c = Calendar.getInstance();

        String today = button_birthday.getText().toString();

        if(today.length() == 13) {

            try {

                c.setTime(sdf.parse(today));

            } catch (ParseException e) {

            }

        }


        DatePickerDialog datePickerDialog = new DatePickerDialog(

                MainActivity.this,

                android.R.style.Theme_Holo_Light_Dialog_MinWidth,

                new OnDateSetListener() {

                    @Override

                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                        try {

                            Calendar calendar = Calendar.getInstance();

                            calendar.set(year, monthOfYear, dayOfMonth);

                            button_birthday.setText( sdf.format(calendar.getTime()) );

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                    }

                },

                c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));


            datePickerDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

            datePickerDialog.show();

        }



    public void onButtonLoginClicked(View v) {

        Toast toast = Toast.makeText(getBaseContext(),

                "이름 : " + text_name.getText() + ", " +

                "나이 : " + text_age.getText() + ", " +

                "생년월일 : " + button_birthday.getText(),

                Toast.LENGTH_LONG);


        toast.show();

    }

}



activity_main.xml


MainActivity.java


activity_menu.xml


MenuActivity.java


activity_customer_mng.xml, activity_sales_mng.xml, activity_customer_mng.xml


CustomerMngActivity.java


SalesMngActivity.java


ProductMngActivity.java


AndroidManifest.xml




activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    >


    <RelativeLayout

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        >


        <EditText

            android:id="@+id/textUser_ID"

            android:layout_width="150dp"

            android:layout_height="wrap_content"

            android:maxLength="20"

            android:maxLines="1"

            android:layout_marginBottom="10dp"

            android:layout_marginRight="10dp"

            android:hint="아이디"

            />


        <EditText

            android:id="@+id/textPassword"

            android:inputType="textPassword"

            android:layout_width="150dp"

            android:layout_height="wrap_content"

            android:layout_below="@id/textUser_ID"

            android:maxLength="40"

            android:maxLines="1"

            android:hint="비밀번호"

            />


        <Button

            android:id="@+id/buttonLogin"

            android:layout_width="wrap_content"

            android:layout_height="100dp"

            android:layout_alignBaseline="@id/textUser_ID"

            android:layout_toRightOf="@id/textUser_ID"

            android:onClick="onButtonLoginClicked"

            android:text="로그인" />


    </RelativeLayout>

</RelativeLayout>


MainActivity.java

public class MainActivity extends AppCompatActivity {

    public static final int REQUEST_CODE_ANOTHER = 1001;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }


    public void onButtonLoginClicked(View v) {

        Intent intent = new Intent(getBaseContext(), MenuActivity.class);

        startActivityForResult(intent, REQUEST_CODE_ANOTHER);


    }

}


activity_menu.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

>


<RelativeLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

>


<Button

android:id="@+id/buttonCustomerMng"

android:layout_width="180dp"

android:layout_height="wrap_content"

android:text="고객 관리"

android:textSize="22dp"

android:layout_marginBottom="10dp"

/>


<Button

android:id="@+id/buttonSalesMng"

android:layout_width="180dp"

android:layout_height="wrap_content"

android:text="매출 관리"

android:textSize="22dp"

android:layout_below="@id/buttonCustomerMng"

android:layout_marginBottom="10dp"

/>


<Button

android:id="@+id/buttonProductMng"

android:layout_width="180dp"

android:layout_height="wrap_content"

android:text="상품 관리"

android:textSize="22dp"

android:layout_below="@id/buttonSalesMng"

/>


</RelativeLayout>


</RelativeLayout>


MenuActivity.java

public class MenuActivity extends Activity {


    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_menu);

    }

 

}


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="net.dev.mission03">


    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>


        <activity android:name=".MenuActivity">

        </activity>

    </application>


</manifest>


+ Recent posts