示例#1
0
文件: view.py 项目: MorisZou/testdj
def query_page(request):
    dbchoice1 = base64.decodestring(request.GET.get('dbchoice1'))
    page_id = request.GET.get('page_id')

    sqltext = open('/tmp/1.txt', 'r').read()

    db_connect = Connect(host=dbchoice1, sqltext1=sqltext)
    (result_desc, messages,
     page_counts) = db_connect.connectexec(page_id=int(page_id))

    if re.compile(r'v\$').search(sqltext) or re.compile(r'V\$').search(
            sqltext) or re.compile(r'dba_\$').search(sqltext) or re.compile(
                r'DBA_\$').search(sqltext):
        cols = []
        rows = []
        for row in messages:
            for col in row:
                cols.append(str(col).decode('utf-8', 'ignore'))
            rows.append(cols)
        messages = rows
        return render_to_response(
            'result.html', {
                'dbchoice1': base64.encodestring(dbchoice1),
                'messages': messages,
                'page_counts': page_counts,
                'result_descs': result_desc
            })
    else:
        return render_to_response(
            'result.html', {
                'dbchoice1': base64.encodestring(dbchoice1),
                'messages': messages,
                'page_counts': page_counts,
                'result_descs': result_desc
            })
示例#2
0
文件: view.py 项目: MorisZou/testdj
def result(request):

    logger = logging.getLogger('testdj')

    key = request.POST.get('m1')
    dbchoice1 = request.POST.get('dbchoice')
    p = re.compile(r'^select')
    if key == '':
        return render_to_response('search.html', {'error': 'NULL'})
    if not (p.search(key)):
        return render_to_response('search.html', {'error': 'notValidSelect'})

    if re.compile(r'for update').search(key):
        return render_to_response('search.html', {'error': 'forUpdate'})

    logger.warning('SQL: ' + key + ' DB EXEUTION:' + dbchoice1 + ' USER: '******'REMOTE_ADDR'])
    db_connect = Connect(host=dbchoice1, sqltext1=key)

    (result_desc, messages, page_counts) = db_connect.connectexec()

    p2 = re.compile(r'ORA-')
    if (p2.search(str(messages))):
        return render_to_response('search.html', {'dberrormsg': messages})
    else:
        open('/tmp/1.txt', 'w+').write(key)
        if re.compile(r'v\$').search(key) or re.compile(r'V\$').search(
                key) or re.compile(r'dba_\$').search(key) or re.compile(
                    r'DBA_\$').search(key):
            cols = []
            rows = []
            for row in messages:
                for col in row:
                    cols.append(str(col).decode('utf-8', 'ignore'))
                rows.append(cols)
            messages = rows
            return render_to_response(
                'result.html', {
                    'dbchoice1': base64.encodestring(dbchoice1),
                    'messages': messages,
                    'page_counts': page_counts,
                    'result_descs': result_desc
                })
        else:
            return render_to_response(
                'result.html', {
                    'dbchoice1': base64.encodestring(dbchoice1),
                    'messages': messages,
                    'page_counts': page_counts,
                    'result_descs': result_desc
                })