Sunrin Flask Study 5회차
간단한 Mockup 자료 발표입니다.
https://github.com/myungseoKang/PaperStock
간단히 Mockup에 대해 발표를 한 뒤 현재 각각 자신들의 노트북(개발 환경)과 Deployment 환경을 Pycharm으로 연동해서 개발을 좀 더 편하게 되었습니다.
그리고 DB를 배웠습니다.
정확히는 모델링과 모델에 대해서 배웠습니다.
class User(db.Model):
__tablename__ = "user"
idx = db.Column(db.Integer, primary_key=True)
age = db.Column(db.Integer, default=20)
name = db.Column(db.String(20))
id = db.Column(db.String(20), unique=True)
pw = db.Column(db.String(20))
created = db.Column(db.DateTime, default=datetime.now)
이런 모델들을 만들어 보면서 Flask-SQLAlchemy도 써보고, Flask-Admin 이라는 모듈들도 써봤습니다.
저는 모의주식 API를 사용할 것이라서 따로 모델링은 User 정도만 있으면 될 거 같습니다.
NSE라는 모듈을 사용할 예정입니다. 비록 미국의 주식 정보지만 그래도 형편에 맞춰서 JSON 형태로 제공되는 API가 많지 않아서 ㅠㅠ 찾기가 조금 힘들었습니다...
그래도 NSE라는 모듈을 찾았으니 이 모듈 갖고 잘 놀아봐야겠습니다.
그리고 Flask-SQLAlchemy에 대해 조금 더 알아보면
db.session.add(new_object)를 하게 되면 db.session에 추가되고 db.session.commit()을 하게 되면 직접적으로 추가를 하는 것이라고 합니다.
그리고 삭제는 db.session.delete(new_object)를 하게 되면 new_object를 지워달라 라는 것이 db.session에 추가되고, db.session.commit()이 직접적으로 반영하는 메서드입니다.
그래서 이렇게 만든 객체들을 어떻게 가져와서 볼 수 있고, 자동으로 생성하려면 어떻게 해야하는지를 알아보기 위해서 극단적으로
URL => /create/<name>/<idx>/<pw> 이런 식으로 해서 생성을 한 다음
Flask-Admin 모듈을 이용해서 Admin 페이지를 추가하고 Admin 페이지에 User Class의 ModelView를 추가함으로써 확인을 할 수 있었습니다.
admin.add_view(ModelView(User, db.session))
이런 식으로 적게 되면 추가를 할 수 있습니다.
URL => /delete/<name>/<idx>/<pw> 이 URL에는
db.session.delete(new_object)를 맵핑해서 일치하는 name, idx, pw를 가진 User를 지우도록 만들었습니다.
found = User.query.filter(
User.name == name,
User.id == idx,
User.pw == pw,
).first()
if found:
if is_web:
return 'success! %s' % (found.id, )
else:
return found
if is_web:
return 'failed'
else:
return None
코드는 이런 식으로 만들어서 나중에 메서드를 재활용할 수 있게끔 만들어주는 법도 배웠습니다.
그리고 마지막에는
@app.route("/create/<name>/<idx>/<pw>")
def create(name, idx, pw):
new = User()
new.name = name
new.id = idx
new.pw = pw
db.session.add(new)
db.session.commit()
return jsonify({
"id": idx,
"pw": pw,
"data": [
"heheheheheh",
"wowowowowowo",
"hell yeah",
]
})
create 메서드를 jsonify 메서드를 이용해서 JSON 형식으로 return 하는 방법까지 알아보고
맛있는 피자를 먹은 뒤에 수업을 마쳤습니다.
그리고 오늘의 숙제는 Github에 Issue들을 등록하는 것입니다. 그리고 모델링이 필요한 부분이 있다면 조금이나마 해오는 것입니다.
저는 모델링이 필요한 부분은 거의 없을 것 같고, Issue 부분은 어느 정도 등록해놨기 때문에 그것을 조금만 보강하면 될 듯 합니다.
이것으로 Sunrin Flask Study with Spoqa의 마지막 주가 시작되었습니다... 뭐 원래 2주밖에 안됬지만 그래도 짧은 시간에 굉장히 많은 것들을 습득한 느낌입니다.
강사님도 친절하게 모든 것을 알려주시고 Flask를 이용해서 코딩하는 것도 재밌습니다.
보람찬 Flask Study가 될 거 같고, 앞으로 더 열심히 배워야겠다는 생각을 했습니다.
이상 Sunrin Flask Study with Spoqa 5회차가 마무리 되었습니다.
'Python > Flask' 카테고리의 다른 글
Sunrin Flask Study 4회차 (0) | 2016.01.08 |
---|---|
Sunrin Flask Study 3회차 (0) | 2016.01.08 |
Sunrin Flask Study 2회차 (0) | 2016.01.08 |
Sunrin Flask Study 1회차 (0) | 2016.01.08 |