Beego + Mysql+ORM을 사용하여 웹 애플리케이션 구축
비고:
Beego는 인터페이스 및 구조체 임베딩과 같은 Go 관련 기능이 통합된 API, 웹 앱 및 백엔드 서비스를 포함한 Go 애플리케이션의 신속한 개발을 위한 RESTful HTTP 프레임워크입니다.
M(모델), V(보기), C(컨트롤러)에는 각각 최상위 폴더가 있습니다. main.go는 진입점입니다.
비고 설치
gopath에서 아래 명령을 실행하십시오.
go get -u github.com/beego/beego/v2
go get -u github.com/beego/bee/v2
Beego는 명령줄 도구를 통해 내장 스캐폴딩 지원을 제공합니다.
go get -u github.com/beego/beego/v2
go get -u github.com/beego/bee/v2
핵심 프로젝트 만들기
설치가 완료되면 $GOPATH 디렉토리에서 sitepointgoapp이라는 애플리케이션을 스캐폴딩하는 다음 명령을 실행합니다.
bee new sitepointgoapp
파일을 살펴보면 다음과 같습니다.
1. 부트스트랩 파일 main.go
2. 핵심 구성 파일 conf/app.conf
3. 기본 컨트롤러 컨트롤러/default.go
4. tests/default_test.go의 기본 테스트 세트
5. views/index.tpl의 기본 뷰 템플릿
자, 기본 앱이 준비되었습니다. 이제 아래 명령을 실행하세요.
bee run
그러면 새 애플리케이션이 로드됩니다.
라우터 설정:
beego.Router("/user/home", &controllers.UserController{}, "*:User")
beego.Router("/user/add", &controllers.UserController{}, "get,post:Add")
여기에서는 ORM과 함께 mysql을 사용했습니다. 먼저 아래 명령을 사용하여 golang을 사용하여 MySQL 드라이버를 설치해야 합니다.
go get -u github.com/go-sql-driver/mysql
첫 번째는 Beego의 ORM 라이브러리 "github.com/astaxie/beego/orm"을 가져오고 두 번째는 mysql 데이터베이스를 사용하기 때문에 필요한 mysql 지원을 제공합니다. 세 번째는 방금 만든 모델을 가져와서 모델의 별칭을 제공합니다.
orm_test용 MySQL에 테이블을 생성하고 아래 쿼리를 실행하여 사용자 테이블을 생성합니다.
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`name` varchar(200) NOT NULL,
`client` varchar(200) NOT NULL,
`url` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
main.go에서 mysql에 대해 아래와 같은 데이터베이스 설정과 함께 드라이버를 등록해야 합니다.
orm.RegisterDriver("mysql", orm.DRMySQL)
orm.RegisterDataBase("default", "mysql", "root:@/orm_test?charset=utf8")
orm.RegisterModel(new(models.User))
다음을 사용하여 ORM 설치
go get github.com/beego/beego/v2/client/orm
명령. 이 줄을 사용하여 ORM을 사용하여 db에 레코드를 삽입해야 합니다.
id, err := o.Insert(&user)
if err == nil {
msg := fmt.Sprintf("User inserted with id:", id)
beego.Debug(msg)
flash.Notice(msg)
flash.Store(&manage.Controller)
} else {
msg := fmt.Sprintf("Couldn't insert new User. Reason: ", err)
beego.Debug(msg)
flash.Error(msg)
flash.Store(&manage.Controller)
}
sqlite를 사용하는 경우 GCC를 설치해야 하고 main.go 파일에서 아래와 같이 데이터베이스 설정을 동일하게 설정해야 합니다.
orm.RegisterDriver("sqlite", orm.DR_Sqlite)
orm.RegisterDataBase("default", "sqlite3", "database/orm_test.db")
orm.RegisterModel(new(models.User))
http://localhost:8086/user/home 우리가 만든 홈 페이지를 표시했는지 확인하십시오.
비고 명령:
1.bee pack pack 명령은 프로젝트를 단일 파일로 압축하는 데 사용됩니다. 압축 파일은 zip 파일을 서버에 업로드 및 압축 해제하여 배포할 수 있습니다.
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.12.0
2021/04/29 15:15:17 INFO ▶ 0001 Packaging application on 'D:\Go-work\src\github.com\aws-learning\bee-go\sitepointgoapp'...
2021/04/29 15:15:17 INFO ▶ 0002 Building application (sitepointgoapp)...
2021/04/29 15:15:17 INFO ▶ 0003 Using: GOOS=windows GOARCH=amd64
2021/04/29 15:15:21 SUCCESS ▶ 0004 Build Successful!
2021/04/29 15:15:21 INFO ▶ 0005 Writing to output: D:\Go-work\src\github.com\aws-learning\bee-go\sitepointgoapp\sitepointgoapp.tar.gz
2021/04/29 15:15:21 INFO ▶ 0006 Excluding relpath prefix: .
2021/04/29 15:15:21 INFO ▶ 0007 Excluding relpath suffix: .go:.DS_Store:.tmp:go.mod:go.sum
2021/04/29 15:15:24 SUCCESS ▶ 0008 Application packed!
2.bee bale - 이 명령은 현재 개발자 팀만 사용할 수 있습니다. 모든 정적 파일을 단일 바이너리 파일로 압축하여 프로젝트를 게시할 때 js, css, 이미지 및 보기를 포함한 정적 파일을 운반할 필요가 없도록 하는 데 사용됩니다. 해당 파일은 프로그램이 시작될 때 덮어쓰지 않고 자동으로 압축이 풀립니다.
3.bee version - 이 명령은 bee, beego 및 go의 버전을 표시합니다.
4.bee 생성 - 특정 스캐폴드 이름 생성
참고문헌
Reference
이 문제에 관하여(Beego + Mysql+ORM을 사용하여 웹 애플리케이션 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/krpmuruga/building-web-applications-using-beego-mysql-orm-4d2e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)