Daily-study
[오늘의 공부] 알고리즘, 포트폴리오 사이트 보완, R 코드 보완
by Roseline Song | March 20, 2019
알고리즘 문제 풀이
포트폴리오 사이트 보완
장고 스터디를 준비하면서 묵혀두었던 웹 사이트를 다시 꺼내보았다. 오래 묵혀두었더니 코드에서 시큼시큼한 냄새가 났다. django 2.0 버전인데도 path가 아니라 url을 쓰고 있었고, model에서도 쓸모 없는 코드가 몇 줄 보였다. Django 스터디를 준비하면서 배운 게 악취를 발견하는 데 도움이 많이 되었다. (특히 초보몽키님께 많이 배웠다)
※ 모델 수정하다가 데이터를 전부 날려버렸다! (다행히 github 저장소에 원본이 있다.)
6개 정도의 프로젝트가 있었는데 후후…. 다시 만들어줘야한다. 후후후….
Code Before/After
urls.py : url() -> path()
before
urlpatterns = [
url(r'^$', views.request_index, name="home"),
url(r'^index', views.request_index, name="home"),
url(r'^project/(?P<pk>\d+)/$', views.detail_projects, name='project_detail'),
url(r'^new/$', views.new_projects, name="new_projects"),
url(r'^edit/(?P<pk>\d+)/$', views.edit_projects, name='edit_projects'),
]
after
urlpatterns = [
path('', views.index, name="home"),
path('index', views.index, name="home"),
path('project/<int:pk>/', views.DetailView.as_view(), name='project_detail'),
path('new/', views.new, name="project_new"),
path('edit/<int:pk>/', views.edit, name='project_edit'),
]
views.py : generic 클래스 뷰 사용하기 (function view를 class view로 바꿨다. 더 심플해보인다.)
before
def detail(request, pk) :
project = get_object_or_404(Project, pk=pk)
return render(request, "myfolio/projects_detail.html", {'project' : project})
after
class DetailView(generic.DetailView):
model = Project
template_name = "myfolio/projects_detail.html"
R로 랜덤 팀 배정하는 함수
어제 교수님께 피드백 받은 대로 random shuffle의 횟수를 여러 번 늘릴 수 있는 옵션을 만들었다. times에 원하는 횟수를 적어주면 그 횟수만큼 팀원을 섞는다.
※배운 함수를 이것저것 활용해서 개인적으로 ‘코드 비빔밥’이라고 부르고 싶다.
> 전체코드 확인하기
원본
m_df <- m_df[sample(nrow(m_df)), ]
바뀐 부분
for(n in seq(times)){
m_df <- m_df[sample(nrow(m_df)), ]
}
Subscribe via RSS