Beego + Mysql+ORM을 사용하여 웹 애플리케이션 구축

5244 단어 beegogomysqlorm

비고:



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는 명령줄 도구를 통해 내장 스캐폴딩 지원을 제공합니다.
  • 새 애플리케이션 만들기
  • 애플리케이션 실행
  • 애플리케이션 테스트
  • 경로 생성 등

  • 핵심 프로젝트 만들기



    설치가 완료되면 $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 생성 - 특정 스캐폴드 이름 생성

    참고문헌


  • What is Beego
  • Go: Building Web Applications with Beego
  • Go: Building Web Applications With Beego - Part 2
  • Code
  • Beego Commands
  • 좋은 웹페이지 즐겨찾기