Skip to forum content
PyDev
Форум python-разработчиков
You are not logged in.
Please login or register.
Root
»
Веб-программирование
»
аналог php require
Pages:
1
2
You must log in or register to post a new topic
Posts [ 1 to 10 of 19 ]
- Registered: Dec. 12, 2008, 4:17 p.m.
- Posts: 14
Существует ли в python аналог php-функции require или require_once ?
***
см.
http://www.phpclub.net/manrus/f/require.html :
Оператор require() включает/include и вычисляет определённый файл.
Когда файл подключён/included, содержащийся в нём код наследует область видимости переменной строки, на которой возникло подключение. Любые переменные, доступные на этой строке в вызывающем файле, будут доступны в вызываемом файле, вперёд от этой точки.
- Registered: Feb. 2, 2007, 9:35 p.m.
- Posts: 422
Аналог есть, но работает чуть иначе.
Читайте тут
http://docs.python.org/tutorial/modules.html
- Registered: Sept. 19, 2007, 3:30 p.m.
- Posts: 182
не помню точно, как в PHP. Но в питоне, в подключаемом модуле область видимости не будет включать в себя переменные из основного скрипта (т.е. из того, откуда это модуль подключали).
- Registered: Feb. 2, 2007, 9:35 p.m.
- Posts: 422
В PHP по сути происходит как бы склейка кода. Подключаемый код видит всё что было до подключения и может это менять и всё что он создал или изменил видно после подключения ) Вернее всё менять он не может, к примеру на всю программу может быть только одна FOOBAR функция, если в include коде попытаться её переопределить, то получится фатальная ошибка.
- Registered: Sept. 19, 2007, 3:30 p.m.
- Posts: 182
Что-то такое припоминаю...
Да. Именно на эту разницу я и хотел обратить внимание топикастера
Last edited Dec. 23, 2008, 2:19 p.m.
- Registered: Dec. 12, 2008, 4:17 p.m.
- Posts: 14
На php мне удавалось при включенном register globals вклеивать фрагменты кода с одного сайта на другой вызывая этот код единственной строкой вида require('http://site.ru/code.txt')
Это позволило защитить код от прочтения при возможности его исполнения поскольку на удаленном сервере были выставлены соответсвующие права доступа.
Возможны ли подобные манипуляции в python ?
- Registered: Feb. 2, 2007, 9:35 p.m.
- Posts: 422
Ну да, скачиваете код, потом передаёте его в eval функцию.
Что-то я не пойму, если прав на чтение кода нет, то зачем что-то скачивать с удалённого сервера, код так и так не прочитают.
- Registered: Dec. 12, 2008, 4:17 p.m.
- Posts: 14
Я новичек в питоне и был бы благодарен за код подобной "вклейки"
- Registered: Feb. 2, 2007, 9:35 p.m.
- Posts: 422
import urllib
CODE_URL = 'http://domain.com/foo/bar/code.txt'
try:
data = urllib.urlopen(CODE_URL).read()
except IOError:
print 'Oops'
else:
eval(data)
- Registered: Sept. 19, 2007, 3:30 p.m.
- Posts: 182
Не совсем верно.
Если, чтоб как в PHP, то надо использовать exec()
import urllib
CODE_URL = 'http://domain.com/foo/bar/code.txt'
try:
data = urllib.urlopen(CODE_URL).read()
except IOError:
print 'Oops'
else:
exec(data)
print login
файл code.txt при этом например такой:
login = 'guest'
pass = 'n34r3'
Root
»
Веб-программирование
»
аналог php require