فهرست منبع

Merge remote-tracking branch 'refs/remotes/origin/normal' into unstable

2DU 9 سال پیش
والد
کامیت
29bd426412
1فایلهای تغییر یافته به همراه137 افزوده شده و 88 حذف شده
  1. 137 88
      app.py

+ 137 - 88
app.py

@@ -100,7 +100,6 @@ curs = conn.cursor(pymysql.cursors.DictCursor)
 def redirect(data):
     return '<meta http-equiv="refresh" content="0;url=' + data + '" />'
 
-web_render = template
 db_ex = curs.execute
 db_pas = pymysql.escape_string
 
@@ -122,13 +121,61 @@ def db_get():
 
 start()
 
+@route('/upload', method=['GET', 'POST'])
+def upload():
+    session = request.environ.get('beaker.session')
+    MEMFILE_MAX = int(set_data['upload']) * 1024 * 1024
+    
+    ip = ip_check(session)
+    ban = ban_check(ip)
+    
+    if(request.method == 'POST'):        
+        if(ban == 1):
+            return redirect('/ban')
+        else:
+            file = request.files.file
+            if(file):
+                exist = re.search('^(.+)(\.(?:[Jj][Pp][Gg]|[Gg][Ii][Ff]|[Jj][Pp][Ee][Gg]|[Pp][Nn][Gg]))$', file.filename)
+                if(exist):
+                    if((int(set_data['upload']) * 1024 * 1024) < request.content_length):
+                        return redirect('/error/17')
+                    else:
+                        file_info = exist.groups()
+
+                        file_data = file_info[0] + file_info[1]
+                        file_name = sha224(file_info[0]) + file_info[1]
+                                           
+                        if(os.path.exists(os.path.join('image', file_name))):
+                            return redirect('/error/16')
+                        else:
+                            file.save(os.path.join('image', file_name))
+                            
+                            db_ex("select title from data where title = '" + db_pas('파일:' + file_data) + "'")
+                            exist_db = db_get()
+                            if(not exist_db):
+                                db_ex("insert into data (title, data, acl) value ('" + db_pas('파일:' + file_data) + "', '" + db_pas('[[파일:' + file_data + ']][br][br]{{{[[파일:' + file_data + ']]}}}') + "', '')")
+                                db_com()
+                            
+                            history_plus('파일:' + file_data, '[[파일:' + file_data + ']][br][br]{{{[[파일:' + file_data + ']]}}}', get_time(), ip, '파일:' + file_data + ' 업로드', '0')
+                            
+                            return redirect('/w/' + url_pas('파일:' + file_data))
+                else:
+                    return redirect('/error/14')
+            else:
+                return redirect('/error/14')
+    else:        
+        if(ban == 1):
+            return redirect('/ban')
+        else:
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], title = '업로드', tn = 21, number = set_data['upload'])
+
 @route('/image/<name:path>')
 def static(name = None):
     session = request.environ.get('beaker.session')
     if(os.path.exists(os.path.join('image', name))):
         return static_file(name, root = 'image')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = '이미지 없음.', title = '이미지 보기')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = '이미지 없음.', title = '이미지 보기')
 
 @route('/acllist')
 def acl_list():
@@ -158,7 +205,7 @@ def acl_list():
     else:
         data = ''
 
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = data, title = 'ACL 문서 목록')
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = data, title = 'ACL 문서 목록')
         
 @route('/adminlist')
 def admin_list():
@@ -192,9 +239,9 @@ def admin_list():
             
             i += 1
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = div, title = '관리자 목록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = div, title = '관리자 목록')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], title = '관리자 목록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], title = '관리자 목록')
         
 @route('/recentchanges')
 def recent_changes():
@@ -261,9 +308,9 @@ def recent_changes():
                 div = div + '</tbody></table></div>'
                 break
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '최근 변경내역')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '최근 변경내역')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '최근 변경내역')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '최근 변경내역')
         
 @route('/history/<name:path>/r/<num:int>/hidden')
 def history_hidden(name = None, num = None):
@@ -358,9 +405,9 @@ def user_record(name = None, num = None):
 
                 break
                 
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '사용자 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '사용자 기록')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '사용자 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '사용자 기록')
         
 @route('/userlog/n/<number:int>')
 def user_log(number = None):
@@ -408,9 +455,9 @@ def user_log(number = None):
             else:
                 j += 1
                 
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = list_data, title = '사용자 가입 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = list_data, title = '사용자 가입 기록')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = '', title = '사용자 가입 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = '', title = '사용자 가입 기록')
         
 @route('/backreset')
 def backlink_reset():
@@ -434,7 +481,7 @@ def backlink_reset():
                 
                 i += 1
         
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = '에러 없음', title = '완료')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = '에러 없음', title = '완료')
     else:
         return redirect('/error/3')
         
@@ -517,9 +564,9 @@ def backlink(name = None, num = None):
         if(restart == 1):
             return redirect('/backlink/' + url_pas(name) + '/n/' + str(num))
         else:    
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = div, title = name, page = url_pas(name), sub = '역링크')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = div, title = name, page = url_pas(name), sub = '역링크')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = 'None', title = name, page = url_pas(name), sub = '역링크')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = 'None', title = name, page = url_pas(name), sub = '역링크')
         
 @route('/recentdiscuss')
 def recent_discuss():
@@ -548,9 +595,9 @@ def recent_discuss():
                 
                 break
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '최근 토론내역')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '최근 토론내역')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '최근 토론내역')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '최근 토론내역')
 
 @route('/blocklog/n/<number:int>')
 def blocklog(number = None):
@@ -595,9 +642,9 @@ def blocklog(number = None):
                     
                 break
                 
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '사용자 차단 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '사용자 차단 기록')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '사용자 차단 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '사용자 차단 기록')
         
 @route('/history/<name:path>/n/<num:int>', method=['POST', 'GET'])
 def history_view(name = None, num = None):
@@ -721,9 +768,9 @@ def history_view(name = None, num = None):
 
                     break
                     
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 5, title = name, page = url_pas(name), select = select, sub = '역사')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 5, title = name, page = url_pas(name), select = select, sub = '역사')
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 5, title = name, page = url_pas(name), select = select, sub = '역사')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 5, title = name, page = url_pas(name), select = select, sub = '역사')
             
 @route('/search', method=['POST'])
 def search():
@@ -811,7 +858,7 @@ def deep_search(name = None, num = None):
 
     div = div + div_plus + end
 
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = div, title = name, sub = '검색')
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], data = div, title = name, sub = '검색')
         
 @route('/w/<name:path>/r/<num:int>')
 def old_view(name = None, num = None):
@@ -832,7 +879,7 @@ def old_view(name = None, num = None):
                 else:
                     left = ''
                     
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, tn = 6, left = left, sub = '옛 문서')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, tn = 6, left = left, sub = '옛 문서')
             else:
                 return redirect('/history/' + url_pas(name))
         else:
@@ -850,7 +897,7 @@ def old_view(name = None, num = None):
             else:
                 left = ''
                 
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, tn = 6, left = left, sub = '옛 문서')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, tn = 6, left = left, sub = '옛 문서')
         else:
             return redirect('/history/' + url_pas(name))
             
@@ -870,7 +917,7 @@ def old_raw(name = None, num = None):
                 
                 enddata = '<pre>' + enddata + '</pre>'
                 
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, sub = '옛 Raw')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, sub = '옛 Raw')
             else:
                 return redirect('/history/' + url_pas(name))
         else:
@@ -885,7 +932,7 @@ def old_raw(name = None, num = None):
             
             enddata = '<pre>' + enddata + '</pre>'
             
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, sub = '옛 Raw')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, sub = '옛 Raw')
         else:
             return redirect('/history/' + url_pas(name))
             
@@ -901,7 +948,7 @@ def raw_view(name = None):
         
         enddata = '<pre>' + enddata + '</pre>'
         
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, tn = 6, sub = 'Raw')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata, tn = 6, sub = 'Raw')
     else:
         return redirect('/w/' + url_pas(name))
         
@@ -979,7 +1026,7 @@ def revert(name = None, num = None):
                     db_ex("select * from history where title = '" + db_pas(name) + "' and id = '" + str(num) + "'")
                     rows = db_get()
                     if(rows):
-                        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), r = url_pas(str(num)), tn = 13, plus = '정말 되돌리시겠습니까?', sub = '되돌리기')
+                        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), r = url_pas(str(num)), tn = 13, plus = '정말 되돌리시겠습니까?', sub = '되돌리기')
                     else:
                         return redirect('/w/' + url_pas(name))
             else:
@@ -991,7 +1038,7 @@ def revert(name = None, num = None):
                 db_ex("select * from history where title = '" + db_pas(name) + "' and id = '" + str(num) + "'")
                 rows = db_get()
                 if(rows):
-                    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), r = url_pas(str(num)), tn = 13, plus = '정말 되돌리시겠습니까?', sub = '되돌리기')
+                    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), r = url_pas(str(num)), tn = 13, plus = '정말 되돌리시겠습니까?', sub = '되돌리기')
                 else:
                     return redirect('/w/' + url_pas(name))
                 
@@ -1070,7 +1117,7 @@ def section_edit(name = None, num = None):
                 if(j == 0):
                     gdata = re.sub("\r\n$", "", gdata)
 
-                    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = gdata, tn = 2, left = left, section = 1, number = num, sub = '편집')
+                    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = gdata, tn = 2, left = left, section = 1, number = num, sub = '편집')
                 else:
                     return redirect('/w/' + url_pas(name))
             else:
@@ -1132,9 +1179,9 @@ def edit(name = None):
             db_ex("select * from data where title = '" + db_pas(name) + "'")
             rows = db_get()
             if(rows):
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = rows[0]['data'], tn = 2, left = left, sub = '편집')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = rows[0]['data'], tn = 2, left = left, sub = '편집')
             else:
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = '', tn = 2, left = left, sub = '편집')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = '', tn = 2, left = left, sub = '편집')
 
 @route('/preview/<name:path>/section/<num:int>', method=['POST'])
 def section_preview(name = None, num = None):
@@ -1157,7 +1204,7 @@ def section_preview(name = None, num = None):
         else:
             left = ''
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = request.forms.content, tn = 2, preview = 1, enddata = enddata, left = left, section = 1, number = num, odata = request.forms.otent, sub = '미리보기')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = request.forms.content, tn = 2, preview = 1, enddata = enddata, left = left, section = 1, number = num, odata = request.forms.otent, sub = '미리보기')
                 
 @route('/preview/<name:path>', method=['POST'])
 def preview(name = None):
@@ -1181,7 +1228,7 @@ def preview(name = None):
         else:
             left = ''
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = request.forms.content, tn = 2, preview = 1, enddata = enddata, left = left, sub = '미리보기')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = request.forms.content, tn = 2, preview = 1, enddata = enddata, left = left, sub = '미리보기')
         
 @route('/delete/<name:path>', method=['POST', 'GET'])
 def delete(name = None):
@@ -1215,7 +1262,7 @@ def delete(name = None):
             if(can == 1):
                 return redirect('/ban')
             else:
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), tn = 8, plus = '정말 삭제 하시겠습니까?', sub = '삭제')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), tn = 8, plus = '정말 삭제 하시겠습니까?', sub = '삭제')
         else:
             return redirect('/w/' + url_pas(name))
             
@@ -1251,48 +1298,48 @@ def move(name = None):
         if(can == 1):
             return redirect('/ban')
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), tn = 9, plus = '정말 이동 하시겠습니까?', sub = '이동')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), tn = 9, plus = '정말 이동 하시겠습니까?', sub = '이동')
             
 @route('/other')
 def other():
     session = request.environ.get('beaker.session')
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기타 메뉴', logo = set_data['name'], data = '<h2 style="margin-top: 0px;">기록</h2><li><a href="/blocklog/n/1">사용자 차단 기록</a></li><li><a href="/userlog/n/1">사용자 가입 기록</a></li><li><a href="/manager/6">사용자 기록</a></li><li><a href="/manager/7">사용자 토론 기록</a></li><h2>기타</h2><li><a href="/titleindex">모든 문서</a></li><li><a href="/acllist">ACL 문서 목록</a></li><!--<li><a href="/upload">업로드</a></li>--><li><a href="/adminlist">관리자 목록</a></li><li><a href="/manager/1">관리자 메뉴</a></li><br>이 오픈나무의 버전은 <a href="https://github.com/2DU/openNAMU/blob/normal/version.md">2.0</a> 입니다.')
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기타 메뉴', logo = set_data['name'], data = '<h2 style="margin-top: 0px;">기록</h2><li><a href="/blocklog/n/1">사용자 차단 기록</a></li><li><a href="/userlog/n/1">사용자 가입 기록</a></li><li><a href="/manager/6">사용자 기록</a></li><li><a href="/manager/7">사용자 토론 기록</a></li><h2>기타</h2><li><a href="/titleindex">모든 문서</a></li><li><a href="/acllist">ACL 문서 목록</a></li><!--<li><a href="/upload">업로드</a></li>--><li><a href="/adminlist">관리자 목록</a></li><li><a href="/manager/1">관리자 메뉴</a></li><br>이 오픈나무의 버전은 <a href="https://github.com/2DU/openNAMU/blob/normal/version.md">2.0</a> 입니다.')
     
 @route('/manager/<num:int>', method=['POST', 'GET'])
 def manager(num = None):
     session = request.environ.get('beaker.session')
     if(num == 1):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '관리자 메뉴', logo = set_data['name'], data = '<h2 style="margin-top: 0px;">관리자 및 소유자</h2><li><a href="/manager/2">문서 ACL</a></li><li><a href="/manager/3">사용자 체크</a></li><li><a href="/manager/4">사용자 차단</a></li><h2>소유자</h2><li><a href="/backreset">모든 역링크 재 생성</a></li><li><a href="/manager/5">관리자 권한 주기</a></li><h2>기타</h2><li>이 메뉴에 없는 기능은 해당 문서의 역사나 토론에서 바로 사용 가능함</li>')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '관리자 메뉴', logo = set_data['name'], data = '<h2 style="margin-top: 0px;">관리자 및 소유자</h2><li><a href="/manager/2">문서 ACL</a></li><li><a href="/manager/3">사용자 체크</a></li><li><a href="/manager/4">사용자 차단</a></li><h2>소유자</h2><li><a href="/backreset">모든 역링크 재 생성</a></li><li><a href="/manager/5">관리자 권한 주기</a></li><h2>기타</h2><li>이 메뉴에 없는 기능은 해당 문서의 역사나 토론에서 바로 사용 가능함</li>')
     elif(num == 2):
         if(request.method == 'POST'):
             return redirect('/acl/' + url_pas(request.forms.name))
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = 'ACL 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/2"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = 'ACL 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/2"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')
     elif(num == 3):
         if(request.method == 'POST'):
             return redirect('/check/' + url_pas(request.forms.name))
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '체크 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/3"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '체크 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/3"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')
     elif(num == 4):
         if(request.method == 'POST'):
             return redirect('/ban/' + url_pas(request.forms.name))
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '차단 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/4"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button><br><br><span>아이피 앞 두자리 (XXX.XXX) 입력하면 대역 차단</span></form>')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '차단 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/4"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button><br><br><span>아이피 앞 두자리 (XXX.XXX) 입력하면 대역 차단</span></form>')
     elif(num == 5):
         if(request.method == 'POST'):
             return redirect('/admin/' + url_pas(request.forms.name))
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/5"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')   
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/5"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')   
     elif(num == 6):
         if(request.method == 'POST'):
             return redirect('/record/' + url_pas(request.forms.name) + '/n/1')
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기록 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/6"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')    
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기록 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/6"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')    
     elif(num == 7):
         if(request.method == 'POST'):
             return redirect('/user/' + url_pas(request.forms.name) + '/topic/1')
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '토론 기록 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/7"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')    
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '토론 기록 이동', logo = set_data['name'], data = '<form id="usrform" method="POST" action="/manager/7"><input name="name" type="text"><br><br><button class="btn btn-primary" type="submit">이동</button></form>')    
     else:
         return redirect('/')
         
@@ -1332,9 +1379,9 @@ def title_index():
 
         data += '</div>'
 
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = data + '<br><li>이 위키에는 총 ' + str(i) + '개의 문서가 있습니다.</li><br><li>틀 문서는 총 ' + str(b) + '개의 문서가 있습니다.</li><li>분류 문서는 총 ' + str(v) + '개의 문서가 있습니다.</li><li>사용자 문서는 총 ' + str(z) + '개의 문서가 있습니다.</li><li>파일 문서는 총 ' + str(j) + '개의 문서가 있습니다.</li><li>나머지 문서는 총 ' + str(e) + '개의 문서가 있습니다.</li>', tn = 3, title = '모든 문서')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = data + '<br><li>이 위키에는 총 ' + str(i) + '개의 문서가 있습니다.</li><br><li>틀 문서는 총 ' + str(b) + '개의 문서가 있습니다.</li><li>분류 문서는 총 ' + str(v) + '개의 문서가 있습니다.</li><li>사용자 문서는 총 ' + str(z) + '개의 문서가 있습니다.</li><li>파일 문서는 총 ' + str(j) + '개의 문서가 있습니다.</li><li>나머지 문서는 총 ' + str(e) + '개의 문서가 있습니다.</li>', tn = 3, title = '모든 문서')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '모든 문서')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '모든 문서')
         
 @route('/topic/<name:path>/close')
 def close_topic_list(name = None):
@@ -1368,7 +1415,7 @@ def close_topic_list(name = None):
             
         i += 1
         
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], plus = div, tn = 10, sub = '닫힌 토론')
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], plus = div, tn = 10, sub = '닫힌 토론')
     
 @route('/topic/<name:path>/agree')
 def agree_topic_list(name = None):
@@ -1402,7 +1449,7 @@ def agree_topic_list(name = None):
             
         i += 1
         
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], plus = div, tn = 10, sub = '합의된 토론')
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], plus = div, tn = 10, sub = '합의된 토론')
         
 @route('/topic/<name:path>/sub/<sub:path>/b/<num:int>')
 def topic_block(name = None, sub = None, num = None):
@@ -1694,7 +1741,7 @@ def topic(name = None, sub = None):
                 div += '</div>'
                 break
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), suburl = url_pas(sub), toron = sub, logo = set_data['name'], rows = div, tn = 11, ban = ban, style = style, sub = '토론')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), suburl = url_pas(sub), toron = sub, logo = set_data['name'], rows = div, tn = 11, ban = ban, style = style, sub = '토론')
 
 @route('/topic/<name:path>', method=['POST', 'GET'])
 def topic_list(name = None):
@@ -1735,7 +1782,7 @@ def topic_list(name = None):
                 
             i += 1
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], plus = div, tn = 10, list = 1, sub = '토론 목록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], plus = div, tn = 10, list = 1, sub = '토론 목록')
         
 @route('/login', method=['POST', 'GET'])
 def login():
@@ -1778,7 +1825,7 @@ def login():
             if(session.get('Now') == True):
                 return redirect('/error/11')
             else:
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인', enter = '로그인', logo = set_data['name'], tn = 15)
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인', enter = '로그인', logo = set_data['name'], tn = 15)
                 
 @route('/change', method=['POST', 'GET'])
 def change_password():
@@ -1816,7 +1863,7 @@ def change_password():
             if(session.get('Now') == True):
                 return redirect('/logout')
             else:
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '비밀번호 변경', enter = '변경', logo = set_data['name'], tn = 15)
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '비밀번호 변경', enter = '변경', logo = set_data['name'], tn = 15)
                 
 @route('/check/<name:path>')
 def user_check(name = None):
@@ -1844,9 +1891,9 @@ def user_check(name = None):
 
                             break
                         
-                    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = c)
+                    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = c)
                 else:
-                    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = '<br>None')
+                    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = '<br>None')
             else:
                 db_ex("select * from login where user = '" + db_pas(name) + "' order by today desc")
                 row = db_get()
@@ -1863,9 +1910,9 @@ def user_check(name = None):
                             
                             break
                         
-                    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = c)
+                    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = c)
                 else:
-                    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = '<br>None')
+                    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '다중 검사', logo = set_data['name'], tn = 3, rows = '<br>None')
         else:
             return redirect('/error/3')
                 
@@ -1907,7 +1954,7 @@ def register():
         if(ban == 1):
             return redirect('/ban')
         else:
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '회원가입', enter = '회원가입', logo = set_data['name'], tn = 15)
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '회원가입', enter = '회원가입', logo = set_data['name'], tn = 15)
             
 @route('/logout')
 def logout():
@@ -1969,7 +2016,7 @@ def user_ban(name = None):
                     else:
                         now = '차단'
                         
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], tn = 16, now = now, today = get_time(), sub = '차단')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], tn = 16, now = now, today = get_time(), sub = '차단')
             else:
                 return redirect('/error/3')
                 
@@ -2005,7 +2052,7 @@ def acl(name = None):
                 else:
                     now = '일반'
                     
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], tn = 19, now = '현재 ACL 상태는 ' + now, sub = 'ACL')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], tn = 19, now = '현재 ACL 상태는 ' + now, sub = 'ACL')
             else:
                 return redirect('/w/' + url_pas(name)) 
         else:
@@ -2040,7 +2087,7 @@ def user_admin(name = None):
                 else:
                     now = '권한 부여'
                     
-                return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], tn = 18, now = now, sub = '권한 부여')
+                return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, page = url_pas(name), logo = set_data['name'], tn = 18, now = now, sub = '권한 부여')
             else:
                 return redirect('/error/5')
         else:
@@ -2104,7 +2151,7 @@ def are_you_ban():
     else:
         end = '권한이 맞지 않는 상태 입니다.'
         
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = end)
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = end)
     
 @route('/w/<name:path>/r/<a:int>/diff/<b:int>')
 def diff_data(name = None, a = None, b = None):
@@ -2128,7 +2175,7 @@ def diff_data(name = None, a = None, b = None):
             
             result = '<pre>' + result + '</pre>'
             
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], data = result, sub = '비교', page = url_pas(name))
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], data = result, sub = '비교', page = url_pas(name))
         else:
             return redirect('/history/' + url_pas(name))
     else:
@@ -2274,7 +2321,7 @@ def read_view(name = None, redirect = None):
         else:
             left = ''
             
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata + div, tn = 1, acl = acl, left = left, uppage = uppage, style = style, topic = topic, redirect = redirect, admin = admin_memu)
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = enddata + div, tn = 1, acl = acl, left = left, uppage = uppage, style = style, topic = topic, redirect = redirect, admin = admin_memu)
     else:
         m = re.search("^사용자:(.*)", name)
         if(m):
@@ -2292,7 +2339,7 @@ def read_view(name = None, redirect = None):
         if(redirect):
             elsedata = re.sub("^#(?:redirect|넘겨주기)\s(?P<in>[^\n]*)", " * [[\g<in>]] 문서로 넘겨주기", elsedata)
         
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = namumark(session, name, elsedata) + div, tn = 1, uppage = uppage, style = style, acl = acl, topic = topic, redirect = redirect, admin = admin_memu, data_none = True)
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = name, logo = set_data['name'], page = url_pas(name), data = namumark(session, name, elsedata) + div, tn = 1, uppage = uppage, style = style, acl = acl, topic = topic, redirect = redirect, admin = admin_memu, data_none = True)
 
 @route('/user/<name:path>/topic/<num:int>')
 def close_topic_list(name = None, num = None):
@@ -2345,9 +2392,9 @@ def close_topic_list(name = None, num = None):
 
                 break
                 
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '사용자 토론 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = div, tn = 3, title = '사용자 토론 기록')
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '사용자 토론 기록')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), logo = set_data['name'], rows = '<br>None', tn = 3, title = '사용자 토론 기록')
         
 @route('/user')
 def user_info():
@@ -2373,7 +2420,7 @@ def user_info():
         
     ip = ip_pas(ip)
         
-    return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '사용자 메뉴', logo = set_data['name'], data = ip + '<br><br><span>권한 상태 : ' + acl + '<h2>로그인 관련</h2><li><a href="/login">로그인</a></li><li><a href="/logout">로그아웃</a></li><li><a href="/register">회원가입</a></li><h2>기타</h2><li><a href="/change">비밀번호 변경</a></li><li><a href="/count">기여 횟수</a></li><li><a href="/record/' + raw_ip + '/n/1">기여 목록</a></li><li><a href="/custom">커스텀 CSS</a></li>')
+    return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '사용자 메뉴', logo = set_data['name'], data = ip + '<br><br><span>권한 상태 : ' + acl + '<h2>로그인 관련</h2><li><a href="/login">로그인</a></li><li><a href="/logout">로그아웃</a></li><li><a href="/register">회원가입</a></li><h2>기타</h2><li><a href="/change">비밀번호 변경</a></li><li><a href="/count">기여 횟수</a></li><li><a href="/record/' + raw_ip + '/n/1">기여 목록</a></li><li><a href="/custom">커스텀 CSS</a></li>')
 
 @route('/custom', method=['GET', 'POST'])
 def custom_css():
@@ -2403,7 +2450,7 @@ def custom_css():
             else:
                 data = ''
 
-            return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '커스텀 CSS', logo = set_data['name'], data = '<form id="usrform" name="f1" method="POST" action="/custom"><textarea rows="30" cols="100" name="content" form="usrform">' + data + '</textarea><div class="form-actions"><button class="btn btn-primary" type="submit">저장</button></div></form>')
+            return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '커스텀 CSS', logo = set_data['name'], data = '<form id="usrform" name="f1" method="POST" action="/custom"><textarea rows="30" cols="100" name="content" form="usrform">' + data + '</textarea><div class="form-actions"><button class="btn btn-primary" type="submit">저장</button></div></form>')
             
 
     
@@ -2413,9 +2460,9 @@ def count_edit():
     db_ex("select count(title) from history where ip = '" + ip_check(session) + "'")
     i = db_get()
     if(i):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기여 횟수', logo = set_data['name'], data = "기여 횟수 : " + str(i[0]["count(title)"]))
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기여 횟수', logo = set_data['name'], data = "기여 횟수 : " + str(i[0]["count(title)"]))
     else:
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기여 횟수', logo = set_data['name'], data = "기여 횟수 : 0")
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '기여 횟수', logo = set_data['name'], data = "기여 횟수 : 0")
         
 @route('/random')
 def random():
@@ -2449,43 +2496,45 @@ def static(name = None):
 def error_test(num = None):
     session = request.environ.get('beaker.session')
     if(num == 1):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '비 로그인 상태 입니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '비 로그인 상태 입니다.')
     elif(num == 2):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '이 계정이 없습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '이 계정이 없습니다.')
     elif(num == 3):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '권한이 모자랍니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '권한이 모자랍니다.')
     elif(num == 4):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '관리자는 차단, 검사 할 수 없습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '권한 오류', logo = set_data['name'], data = '관리자는 차단, 검사 할 수 없습니다.')
     elif(num == 5):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '사용자 오류', logo = set_data['name'], data = '그런 계정이 없습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '사용자 오류', logo = set_data['name'], data = '그런 계정이 없습니다.')
     elif(num == 6):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '가입 오류', logo = set_data['name'], data = '동일한 아이디의 사용자가 있습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '가입 오류', logo = set_data['name'], data = '동일한 아이디의 사용자가 있습니다.')
     elif(num == 7):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '가입 오류', logo = set_data['name'], data = '아이디는 20글자보다 짧아야 합니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '가입 오류', logo = set_data['name'], data = '아이디는 20글자보다 짧아야 합니다.')
     elif(num == 8):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '가입 오류', logo = set_data['name'], data = '아이디에는 한글과 알파벳과 공백만 허용 됩니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '가입 오류', logo = set_data['name'], data = '아이디에는 한글과 알파벳과 공백만 허용 됩니다.')
     elif(num == 9):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '변경 오류', logo = set_data['name'], data = '그런 계정이 없습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '변경 오류', logo = set_data['name'], data = '그런 계정이 없습니다.')
     elif(num == 10):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '변경 오류', logo = set_data['name'], data = '비밀번호가 다릅니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '변경 오류', logo = set_data['name'], data = '비밀번호가 다릅니다.')
     elif(num == 11):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인 오류', logo = set_data['name'], data = '이미 로그인 되어 있습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인 오류', logo = set_data['name'], data = '이미 로그인 되어 있습니다.')
     elif(num == 12):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인 오류', logo = set_data['name'], data = '그런 계정이 없습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인 오류', logo = set_data['name'], data = '그런 계정이 없습니다.')
     elif(num == 13):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인 오류', logo = set_data['name'], data = '비밀번호가 다릅니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '로그인 오류', logo = set_data['name'], data = '비밀번호가 다릅니다.')
     elif(num == 14):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '업로드 오류', logo = set_data['name'], data = 'jpg, gif, jpeg, png(대 소문자 상관 없음)만 가능 합니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '업로드 오류', logo = set_data['name'], data = 'jpg, gif, jpeg, png(대 소문자 상관 없음)만 가능 합니다.')
     elif(num == 15):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '편집 오류', logo = set_data['name'], data = '편집 기록은 500자를 넘을 수 없습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '편집 오류', logo = set_data['name'], data = '편집 기록은 500자를 넘을 수 없습니다.')
     elif(num == 16):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '업로드 오류', logo = set_data['name'], data = '동일한 이름의 파일이 있습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '업로드 오류', logo = set_data['name'], data = '동일한 이름의 파일이 있습니다.')
+    elif(num == 17):
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '업로드 오류', logo = set_data['name'], data = '파일 용량은 ' + set_data['upload'] + 'MB를 넘길 수 없습니다.')
     elif(num == 18):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '편집 오류', logo = set_data['name'], data = '내용이 원래 문서와 동일 합니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '편집 오류', logo = set_data['name'], data = '내용이 원래 문서와 동일 합니다.')
     elif(num == 19):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '이동 오류', logo = set_data['name'], data = '이동 하려는 곳에 문서가 이미 있습니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '이동 오류', logo = set_data['name'], data = '이동 하려는 곳에 문서가 이미 있습니다.')
     elif(num == 20):
-        return web_render('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '비밀번호 오류', logo = set_data['name'], data = '재 확인이랑 비밀번호가 다릅니다.')
+        return template('index', custom = custom_css_user(session), license = set_data['license'], login = login_check(session), title = '비밀번호 오류', logo = set_data['name'], data = '재 확인이랑 비밀번호가 다릅니다.')
     else:
         return redirect('/')