Форум сайта python.su
0
Всем привет!
Почитал здесь-http://python.su/forum/topic/14219/
всё сделал так как там описано,также всё назвал
потом решил сам попробовать написать.
Написал скрипт:
#!/usr/bin/env python #-*-coding: utf-8 import os,cx_Oracle,pymssql import flask import unittest import tempfile #Импортируем класс Flask from flask import Flask from flask import render_template DEBAG=True #Создаём экземпляр app класса Flask. Экземлаяр в данном случае уже является WSGI #приложением app = Flask(__name__) #это блок куда записывать функции @app.route('/index.html', methods=['GET']) def funOracle(): connection = cx_Oracle.connect("user","pwd","ip_adrr/name1BD") cursor = connection.cursor() cursor.execute("SELECT * FROM table where pole=znachenie") date=cursor.fetchall() p='' for rec in date: p=p+str(rec) connection.close() p.decode('string_escape') return render_template('index.html',keyone=str(p)) def funMSSQL(): conn = pymssql.connect( user = 'user', password = 'pwd', host = 'namehost', database = 'name2BD') cur=conn.cursor() cur.execute('SELECT * FROM table10') data=cur.fetchall() s='' for rec in data: s=s+str(rec) conn.close() return render_template('index.html',keytwo=s) #этот блок запускает на исполнение наше WSGI приложение, причём так,чтобы клиенты ЛВС #запустить это приложение тоже. if __name__ == '__main__': app.run(debug=True, host='127.0.0.1')
<!doctype html> <title> Стартовая страница </title> {% extends "index.html" %} {% block body %} {% if keyone %} <th>{{keyone}}</th> {% else %} <th>Не передан шаблону параметр keyone</th> {% endif %} {% if keytwo %} <th>{{keytwo}}</th> {% else %} <th>Не передан шаблону параметр keytwo</th> {% endif %}
[root@ser py]# python hello.py * Running on http://0.0.0.0:5000/ * Restarting with reloader... 127.0.0.1 - - [12/Apr/2012 10:30:20] "GET /index.html HTTP/1.0" 404 -
Отредактировано QWgtyhdk (Апрель 12, 2012 08:52:34)
Офлайн
0
Во-первых, такое впечатление, что вы забыли сохранить файл перед запуском, потому как у вас в коде:
app.run(debug=True, host='127.0.0.1')
... @app.route('/oracle', methods=['GET']) def funOracle(): ... @app.route('/mssql', methods=['GET']) def funMSSQL(): ...
Отредактировано Yanzay (Апрель 12, 2012 12:23:25)
Офлайн
0
С учётом вышесказанного , я переделал содержание скрипта сл.образом:
#!/usr/bin/env python #-*-coding: utf-8 import os,cx_Oracle,pymssql import flask import unittest import tempfile #Импортируем класс Flask from flask import Flask from flask import render_template DEBAG=True #Создаём экземпляр app класса Flask. Экземлаяр в данном случае уже является WSGI #приложением app = Flask(__name__) #это блок куда записывать функции @app.route('/oracle', methods=['GET']) def funOracle(): connection = cx_Oracle.connect("user","pwd","ip_adrr/name1BD") cursor = connection.cursor() cursor.execute("SELECT * FROM table where pole=znachenie") date=cursor.fetchall() p='' for rec in date: p=p+str(rec) connection.close() p.decode('string_escape') return render_template('index.html',keyone=str(p)) @app.route('/mssql', methods=['GET']) def funMSSQL(): conn = pymssql.connect( user = 'user', password = 'pwd', host = 'namehost', database = 'name2BD') cur=conn.cursor() cur.execute('SELECT * FROM table10') data=cur.fetchall() s='' for rec in data: s=s+str(rec) conn.close() return render_template('index.html',keytwo=s) #этот блок запускает на исполнение наше WSGI приложение, причём так,чтобы можно было работать только с локали if __name__ == '__main__': app.run(debug=True, host='127.0.0.1')
<!doctype html> <title> Стартовая страница </title> {% extends "index.html" %} {% block body %} {% if keyone %} <th>{{keyone}}</th> {% else %} <th>Не передан шаблону параметр keyone</th> {% endif %} {% if keytwo %} <th>{{keytwo}}</th> {% else %} <th>Не передан шаблону параметр keytwo</th> {% endif %}
[root@ser py]# python hello.py * Running on http://127.0.0.1:5000/ * Restarting with reloader... 127.0.0.1 - - [13/Apr/2012 06:30:20] "GET /index.html HTTP/1.0" 404 -
Отредактировано QWgtyhdk (Апрель 13, 2012 03:12:32)
Офлайн
0
QWgtyhdkошибка не в шаблоне =)
я что-то не могу понять,где ошибка в шаблоне
Офлайн
0
Yanzayхм…а как же в таком случае работать с функциями по работе с Oracle и MS SQL ,чтобы результаты были в обдной веб-странице?QWgtyhdkошибка не в шаблоне
я что-то не могу понять,где ошибка в шаблоне
Вы в браузере что пишете? Судя по всему http://127.0.0.1:5000/index.html, а вы же только что поменяли адреса роутинга(подсказка: надо заходить на http://127.0.0.1:5000/oracle и http://127.0.0.1:5000/mssql)
Рекомендую вам ознакомиться с документацией по Flask хотя-бы на начальном уровне
Офлайн
0
YanzayQWgtyhdkошибка не в шаблоне
я что-то не могу понять,где ошибка в шаблоне
Вы в браузере что пишете? Судя по всему http://127.0.0.1:5000/index.html, а вы же только что поменяли адреса роутинга(подсказка: надо заходить на http://127.0.0.1:5000/oracle и http://127.0.0.1:5000/mssql)
Рекомендую вам ознакомиться с документацией по Flask хотя-бы на начальном уровне
... TemplateSyntaxError:Unexpected end of templete. Jinja was looking for the following tags:'endif'. The innermost block that need to be closed is 'if'
Офлайн
0
Смотрите что у меня получилось:
#!/usr/bin/env python #-*-coding: utf-8 import os,cx_Oracle,pymssql import flask import unittest import tempfile from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/', methods=['GET']) def MainHandler(): keyone = funOracle() keytwo = funMSSQL() return render_template('index.html', keyone=keyone, keytwo=keytwo) def funOracle(): connection = cx_Oracle.connect("user","pwd","ip_adrr/name1BD") cursor = connection.cursor() cursor.execute("SELECT * FROM table where pole=znachenie") date=cursor.fetchall() p='' for rec in date: p=p+str(rec) connection.close() p.decode('string_escape') return p def funMSSQL(): conn = pymssql.connect( user = 'user', password = 'pwd', host = 'namehost', database = 'name2BD') cur=conn.cursor() cur.execute('SELECT * FROM table10') data=cur.fetchall() s='' for rec in data: s=s+str(rec) conn.close() return s if __name__ == '__main__': app.run(debug=True, host='127.0.0.1')
<!doctype html> <head> <title> Стартовая страница </title> </head> <body> {% if keyone %} <th>{{keyone}}</th> {% else %} <th>Не передан шаблону параметр keyone</th> {% endif %} {% if keytwo %} <th>{{keytwo}}</th> {% else %} <th>Не передан шаблону параметр keytwo</th> {% endif %} </body>
Офлайн
0
Скрипт переделал,в шаблоне поправил-добпавил пробелы между знакам {{ и }}
и всё заработал)))
но не отображаются русские сиволы((
по работе с Oracle-они заменены символом ?
а по работе с MS SQL-перед символом стоит буква u
даже просто в шаблоне пытаешься написать на рус яз, что выводить-сразу в браузере ошибка выскакивает- UnicodeDecodeError
У меня вопрос ещё, а как создать 3 кнопки допустим на веб-странице, чтобы по нажатию 1-ой кнопки-выполнялась функция длпусти назовём её funBuy(), которая дополнит страницу снизу словом-Вы купили!Поздравляем Вас!
А вторая кнопка-назовём её funProd()-добавит снизу страницы-Позравляю!Вы продали!
3-яя кнопка на странице-по нажатию которой открывается ещё одна вкладка в браузере и перенапраляется на php-шный скрипт(например он называется по другому адресу в локалке-mainofic.php)…т.е. своеобразный rejirect сделать нужно.
Отредактировано QWgtyhdk (Апрель 16, 2012 07:27:49)
Офлайн
52
Вот странно. С одной стороны, помогать хорошо. С другой - это настолько некоторых расхолаживает, что они перестают делать что-либо самостоятельно и со всеми проблемами идут за помощью.
QWgtyhdk, в интернете полно справочного материала. Изучайте, пробуйте.
Офлайн
0
Вы не думайте,что я сугубо форумом пользуюсь-это я тоже считаю не правильным. по вопросу ошибки UnicodeDecodeError я может и догадываюсь в чём проблема-вот собсвенно сейчас литеритуру и читаю в том числе по этому поводу-считаю,что всё дело по особенностями птона обрабатывать utf8 “по-своему”…
а вот с кнопками-тут я пока затрудняюсь сам найти ответ-хотя литературу читаю.
Офлайн