2015-10-22

beego Tutorial 5 : 관리자 추가하기



  • 우선 xyz/views/admin/index.html 에 다음을 추가한다.
    ...
     
    <div style="text-align: right; padding-bottom: 10px">
      <a href="/admin/insert_form" class="btn btn-default" data-toggle="modal" data-target="#myModal">관리자 추가</a>
    </div>
     
    ...
     
    <div id="myModal" class="modal fade" role="dialog" tabindex="-1" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
        </div>
      </div>
    </div>
     
    ...
     
    <script>
    // Modal Remote Reload
    $(document).on('hidden.bs.modal', function (e) {
        $(e.target).removeData('bs.modal');
    })
    </script>
     
    ...
  • 관리자 입력 양식을 만들자. xyz/views/admin/insert_form.html
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      <h4 class="modal-title">관리자 추가</h4>
    </div>
    <div class="modal-body">
      <form name="insert_form" action="/admin/insert" method="post">
        {{ .xsrfdata }}
        <div class="form-group">
          <label>아이디 <small>(필수)</small></label>
          <input type="text" name="userid" class="form-control" required>
        </div>
        <div class="form-group">
          <label>비밀번호 <small>(필수)</small></label>
          <input type="password" id="password" name="passwd1" class="form-control" required>
        </div>
        <div class="form-group">
          <label>비밀번호 확인 <small>(필수)</small></label>
          <input type="password" name="passwd2" class="form-control" required>
        </div>
        <div class="form-group">
          <label>별명 <small>(필수)</small></label>
          <input type="text" name="nick" class="form-control" required>
        </div>
        <div class="form-group" style="text-align: right">
          <input class="btn btn-primary" type="submit" value="관리자 추가" />
        </div>
      </form>
    </div>
  • xyz/controllers/admin.go 에 html/template 를 import 하고, 다음 코드를 추가한다.
    ...
     
    // 관리자 추가 폼
    func (c *AdminController) Insert_form() {
        c.Data["xsrfdata"] = template.HTML(c.XsrfFormHtml())
        c.TplNames = "admin/insert_form.html"
    }
     
    ...
  • xyz/routers/router.go 에 다음을 추가한다.
    beego.Router("/admin/insert_form", &c.AdminController{}, "get:Insert_form")
  • 관리자 추가 버튼을 클릭하면 모달 다이얼로그 박스 형식의 입력 양식이 나올 것이다.
  • 이제, 실제로 DB에 관리자를 추가해보자. 우선, xyz/models/admin.go 에 다음을 추가한다.
    ...
     
    func (this *Admin) Insert(userid string, passwd string, nick string) {
        o := orm.NewOrm()
        o.Using("default")
     
        this.Userid = userid
        this.Password = passwd
        this.Nick = nick
        o.Insert(this)
    }
     
    ...
  • 그리고, xyz/controllers/admin.go 에 다음을 추가한다.
    ...
     
    // 관리자 추가
    func (c *AdminController) Insert() {
        userid := c.GetString("userid")
        passwd1 := c.GetString("passwd1")
        passwd2 := c.GetString("passwd2")
        nick := c.GetString("nick")
     
        if passwd1 != passwd2 {
            c.Redirect(c.UrlFor(".Index"), 302)
            return
        }
     
        admin := new(models.Admin)
        admin.Insert(userid, passwd1, nick)
     
        c.Redirect(c.UrlFor(".Index"), 302)
    }
     
    ...
  • xyz/routers/router.go 에는 다음을 추가한다.
    beego.Router("/admin/insert", &c.AdminController{}, "post:Insert")
  • 코드 작성은 완료되었으니, 실제 화면에서 관리자를 등록해보면 목록에 표시되는 것을 볼 수 있을 것이다.


댓글 없음:

댓글 쓰기