пирамида е бърз, малък, здраво стъпил на земята, рамка Python уеб програмиране с отворен код & Nbsp;. Това прави реални уеб приложение за развитие и внедряване по-забавно и по-предвидима, и по-продуктивни.
пирамида е проект Пилони, и е в основата на най-новите уеб рамки, произведени от пилоните общност.
пирамида е предварително известен като repoze.bfg.
<Силен> Поддръжка и документация
Виж сайта пилоните Проект за да видите документацията, докладват за грешки, и да получи подкрепа.
<Силен> License
пирамида се предлага под BSD-получен Repoze Public License
Какво ново в тази версия:.
- mako_templating: добавена защита заобиколно за не-importability на мако поради markupsafe нагоре отпадане Python 3.2 поддръжка. Mako шаблони вече няма да работи под комбинацията от MarkupSafe 0.17 и Python 3.2 (въпреки че комбинацията от MarkupSafe 0.17 и Python 3.3 или някоя подкрепена Python 2 версия ще работи OK).
- Направете pyramid.config.assets.PackageOverrides възразяват прилагане на API за __loader__ обекти, посочени в PEP 302. Proxies към __loader__ определен от вносителя, ако има такива; В противен случай, повдига NotImplementedError. Това прави пирамида статична картина замени работят правилно под Python 3.3 (преди това те не ще). Вижте https://github.com/Pylons/pyramid/pull/1015 за повече информация.
Какво ново във версия 1.4:
- Fix функционални тестове в ZODB начинаещи
Какво ново версия 1.4 Beta 3:
- освобождаване опаковка, с промени в кода. 1.4b2 беше brownbag освобождаване поради липсващи директории в Tarball.
Какво ново във версия 1.3.4:
- Когато pyramid.debug_routematch бе включен и траверса предикат се използва по никакъв начин, рутера ще повдигне изключение, когато се опитват да отпечатате информацията за маршрута отстраняване на грешки. Този бъг съществува от 1.3a1.
- Когато траверс предикат се използва по никакъв начин, proutes и pviews конзолни скриптове ще повдигат изключение, когато се опитват да отпечатате информацията маршрут отстраняване на грешки. Този бъг съществува от 1.3a1.
- Backport бъг, от майстор: - В Mako Templates справка, проверете за абсолютен при (използвайки мако директории) при смесване на наследството с характеристики на активите. https://github.com/Pylons/pyramid/issues/662
- При регистриране на множество мнения с един приемам предикат в приложение Pyramid Стъпало по Python 3, може да сте получили Тип грешка: unorderable видове: функция () & LT; функция () прави изключение.
- Backport от господаря: HTTP Приемете хедъри не са били нормализира причинявайки потенциално конфликтни виждане регистрации да остане незабелязано. Две възгледи, които се различават само в случай ("текст / HTML" vs. "текст / HTML") сега ще се повиши грешка. https://github.com/Pylons/pyramid/pull/620
Какво ново версия 1.4 Alpha 1:
- Корекции на грешки:
- Forward порт от 1.3 клон: Когато няма политика удостоверяване е конфигурирана, покана да pyramid.security.effective_principals безусловно ще върне празен списък. Това е неправилно, то трябва да има безусловно върна [Всички], и сега е така.
- Explicit URL изпращане regexes вече могат да съдържат и запетая. https://github.com/Pylons/pyramid/issues/629
- На най-малко една 64-битова система Ubuntu под Python 3.2, използвайки view_config декоратор предизвика RuntimeError: речника променен размер по време на итерация изключение. Вече не е така. Вижте https://github.com/Pylons/pyramid/issues/635 за повече информация.
- В Mako Templates справка, проверете дали URI вече е коригирано и да го върне към спец актив. Обикновено се случва с наследствени шаблони или включени компоненти. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- В Mako Templates справка, проверете за абсолютен при (използвайки мако директории) при смесване на наследството с характеристики на активите. https://github.com/Pylons/pyramid/issues/662
- HTTP Приемете хедъри не са били нормализира причинявайки потенциално конфликтни виждане регистрации да остане незабелязано. Две възгледи, които се различават само в случай ("текст / HTML" vs. "текст / HTML") сега ще се повиши грешка. https://github.com/Pylons/pyramid/pull/620
- Forward-порт от 1.3 клон: когато се регистрират множество изгледи с приемам предикат в приложение Pyramid Стъпало по Python 3, може да сте получили Тип грешка: unorderable видове: функция () & LT; функция () прави изключение.
- Характеристики:
- Configurator.add_directive вече приема произволни callables като частични или предмети за изпълнение __call__ които не трябва __name__ и __doc__ атрибути. Вижте https://github.com/Pylons/pyramid/issues/621 и https://github.com/Pylons/pyramid/pull/647.
- персонализиран изглед на трети страни, маршрутни и абонатни предикати вече могат да се добавят за ползване от виждане автори чрез pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate и pyramid.config.Configurator.add_subscriber_predicate. Така, например, прави това:
- config.add_view_predicate ("ABC", my.package.ABCPredicate)
- може да позволи оглед автор да направите това в заявлението, че конфигурирана, че предикатното:
- view_config (ABC = 1)
- Подобни функции за add_route и add_subscriber. Виж & quot; Добавяне на трето лице View, Route, или Subscriber Предикатна & quot; в Куки глава за повече информация.
- Имайте предвид, че промените, направени в подкрепа на по-горе функция сега означава, че само действия, регистрирани като се използва същият & quot; ред & quot; могат да влязат в конфликт една с друга. Той се използва, за да се окаже, че действията, регистрирани в различни поръчки биха могли да влязат в противоречие, но за моя нищо знания някога зависеше от това поведение (това е малко глупаво).
- Персонализирани обекти могат да се правят лесно JSON-Serializable в Pyramid чрез определяне на метод __json__ на класа на обекта. Този метод трябва да се връщат стойности роден Serializable от json.dumps (като цели числа, списъци, речници, струни, и така нататък).
- изобразяване на JSON сега дава възможност за дефиниране на потребителски тип адаптери за преобразуване на неизвестни обекти да JSON serializations.
- Както и на това освобождаване, на REQUEST_METHOD предикат, когато се използва, ще се предполага, че HEAD се подразбира, когато използвате GET. Например, използвайкиview_config (REQUEST_METHOD = "GET") е едно да се използваview_config (REQUEST_METHOD = ("GET", "глава")). Използванетоview_config (REQUEST_METHOD = ("GET", "POST") е едно да се използваview_config (REQUEST_METHOD = ("GET", "HEAD", "POST"). Това е така, защото HEAD е вариант на GET, че е пропуснато тяло, и WebOb има специална поддръжка, за да се върне празно тяло, когато се използва с глава.
- config.add_request_method е въведена в подкрепа простиращи заявка обекти с произволна callables. Този метод се разширява спрямо предходния config.set_request_property чрез методи, подпомагащи както и свойства. Този метод вече причинява по-малко код, за да се изпълняват по заявка време строителството от config.set_request_property версия 1.3.
- Не добавите? да URLs, генерирани от request.resource_url Ако аргументът за заявка се предоставя, но празна.
- Не добавите? да URLs, генерирани от request.route_url ако аргументът на _query е осигурена, но празна.
- статичен оглед машината The сега повдига (а не се връща) HTTPNotFound и HTTPMovedPermanently изключения, така че те могат да бъдат уловени от гледката на NOTFOUND (и други възгледи изключение).
- модула за рендиране Mako вече поддържа име на Def в спец актив. Когато името на Def присъства в спецификацията на активите, системата ще въздаде ДЕФ шаблон в рамките на шаблона и ще върне резултат. Един спец например актив е пакет: път / до / шаблон # defname.mako. Това ще направи дефиниция на име defname вътре в шаблона вместо оказване на целия шаблон template.mako. Старият начин на връщане на кортеж в форма ("defname", {}) от гледката се поддържа за обратна съвместимост,
- модула за рендиране Chameleon ЗПТ вече приема макро име в спец актив. Когато името на макро присъства в спецификацията на активите, системата ще направи макро вписана като дефинирате-макро и връща резултат, вместо да прави целия шаблон. Един спец например актив: пакет: път / до / шаблон # macroname.pt. Това ще направи макро определя като macroname в рамките на шаблона, вместо целия templae template.pt.
- Когато е налице несъответствие предикатното изключение (наблюдавани при липса на становище мачове за дадена заявка поради предикати не работят), изключение сега съдържа текстово описание на предиката, които не отговарят.
- метод An директива add_permission е добавен в конфигуратора. Тази директива се регистрира свободно стояща разрешение introspectable в интроспекция система Pyramid. Рамки, построени на върха на пирамидата може по този начин да използват данните за разрешенията introspectable категория за изграждане на цялостен списък на разрешения подкрепени от работеща система. Преди беше добавен този метод, разрешения вече са регистрирани в тази категория introspectable като страничен ефект от тяхното наименование в add_view разговор, този метод просто го прави възможно да се организира за разрешение да бъдат пуснати в разрешенията introspectable категория, без да го назовава, заедно с асоцииран изглед. Ето един пример за използване на add_permission:
- довереник = Configurator ()
- config.add_permission ("изглед")
- The UnencryptedCookieSessionFactoryConfig вече приема signed_serialize и signed_deserialize куки, които могат да бъдат използвани, за да повлияят на това как са водени на сесиите (по подразбиране това е направено с HMAC + туршия).
- pyramid.testing.DummyRequest вече поддържа методи, предоставени от класа pyramid.util.InstancePropertyMixin като set_property.
- Искане свойства и методи добавени чрез config.set_request_property или config.add_request_method сега са на разположение, за да туини.
- Искане свойства и методи добавени чрез config.set_request_property или config.add_request_method вече са на разположение в искането обекта се завърна от pyramid.paster.bootstrap.
- request.context на искане среда по време на фърмуера сега е основната цел, ако една връзка не е вече определен по условие поискване.
- The pyramid.decorator.reify функция сега е API, и се добавя към документацията на API.
- Добавена контекст управителя на pyramid.testing.testConfig, която може да се използва за генериране на конфигуратор по време на тест, напр с testing.testConfig (...):.
- Потребителите вече могат да се позоват на subrequest отвътре оглед код с помощта на нова request.invoke_subrequest API.
- обезценяване на лева:
- The pyramid.config.Configurator.set_request_property е документацията-отхвърлена. Методът остава използваем, но на по-featureful pyramid.config.Configurator.add_request_method трябва да се използва на мястото му (той има всичко на същите възможности, но също може да удължи искане обекта с методи).
- предходни несъвместимости:
- Рутерът Pyramid вече не добавя bfg.routes.route стойности или bfg.routes.matchdict да речника WSGI среда искането си. Тези стойности са Документи-отхвърлени във repoze.bfg 1.0 (ефективно седем второстепенни промени преди). Ако вашият код зависеше от тези стойности, използвайте request.matched_route и request.matchdict вместо.
- Това вече не е възможно да се явят на речника околната директно да pyramid.traversal.ResourceTreeTraverser .__ call__ (известен още като ModelGraphTraverser .__ call__). Вместо това, вие трябва да премине молба обект. Минавайки среда вместо искане е генерирала предупреждение осъждане, тъй като Pyramid 1.1.
- Pyramid вече няма да работи правилно, ако използвате webob.request.LegacyRequest като искане фабрика. Копия на LegacyRequest класа имат request.path_info която връща низ. Това Pyramid освобождаване предполага, че request.path_info безусловно ще бъде Unicode.
- Функциите от pyramid.chameleon_zpt и pyramid.chameleon_text име get_renderer, get_template, render_template и render_template_to_response са били отстранени. Те са издали осъждане предупреждение при внос, тъй като Pyramid 1.0. Използвайте pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Прилагане (), pyramid.renderers.render () или pyramid.renderers.render_to_response съответно вместо тези функции.
- модул pyramid.configuration се отстранява. Тя е била отхвърлена, тъй като Pyramid 1.0 и отпечатани на неодобрение предупреждение при нейното използване. Използвайте pyramid.config вместо.
- The API pyramid.paster.PyramidTemplate се отстранява. Тя е била отхвърлена, тъй като Pyramid 1.1 и издаде предупреждение за внос. Ако вашият код зависеше от това, коригира своя код, за да импортирате pyramid.scaffolds.PyramidTemplate вместо.
- на pyramid.settings.get_settings () API се отстранява. Той е бил отпечатване предупреждение осъждане, тъй Pyramid 1.0. Ако вашият код зависеше от това API, използвайте pyramid.threadlocal.get_current_registry (). Настройки вместо или използвайте атрибута настройки на системния регистър на разположение от искането (request.registry.settings).
- Тези API от модула pyramid.testing бяха отстранени. Те са били отпечатване предупреждения неодобрение от Pyramid 1.0:
- registerDummySecurityPolicy, използвайте pyramid.config.Configurator.testing_securitypolicy вместо.
- registerResources (известен още като registerModels, използват pyramid.config.Configurator.testing_resources вместо.
- registerEventListener, използвайте pyramid.config.Configurator.testing_add_subscriber вместо.
- registerTemplateRenderer (известен още като registerDummyRenderer`), използвайте pyramid.config.Configurator.testing_add_template вместо.
- registerView, използвайте pyramid.config.Configurator.add_view вместо.
- registerUtility, използвайте pyramid.config.Configurator.registry.registerUtility вместо.
- registerAdapter, използвайте pyramid.config.Configurator.registry.registerAdapter вместо.
- registerSubscriber, използвайте pyramid.config.Configurator.add_subscriber вместо.
- registerRoute, използвайте pyramid.config.Configurator.add_route вместо.
- registerSettings, работа с pyramid.config.Configurator.add_settings вместо.
- В Pyramid 1.3 и предишното, метода на __call__ на обект Response е извикана преди са били екзекутирани всички завършени извика. Както и на това освобождаване, метода на __call__ на обект Response се извиква след завършен обратни извиквания се изпълняват. Това е в подкрепа на request.invoke_subrequest функция.
- Документация:
- добави & quot; Надстройка Pyramid & quot; глава към документацията за разказ. Тя описва как да се справят с обезценяване на лева и поглъщането на пирамида APIs и как да се покаже Pyramid-генерирани предупреждения неодобрение по време на движение тестове и по време на движение на сървъра.
- Добавена на & quot; Извикване на Subrequest & quot; глава към документацията. Тя описва как да използвате новата request.invoke_subrequest API.
- Зависимости:
- Pyramid сега изисква WebOb 1.2b3 + (предварителното освобождаване Pyramid разчита само на 1.2dev +). Това е да се гарантира, че ще получим версия на WebOb, че се връща request.path_info като текст.
съществуват
Какво ново във версия 1.3.2:
- Версия 1.3.1 е освобождаване brownbag, най- много малко на Windows и евентуално на други операционни системи, поради наличието на едно бездомно & quot; пакет директория (цитат включена) в главната директория на 1.3.1 Tarball. Тази директория и съдържанието му е била пълна, тъй като архив, е създаден с помощта на съобщение на версия на setuptools-Git, а не setuptools-Git инсталирани от касата. Единствената промяна в това издание е да се коригира грешка за опаковане в 1.3.1.
Какво ново във версия 1.3:
- Когато pyramid.wsgi.wsgiapp2 нарича течението WSGI приложението, околната ап вече няма да има (отхвърлена и потенциално подвеждаща) bfg.routes.matchdict или bfg.routes.route ключове в него. Симптом за този бъг ще бъде wsgiapp2 увити Pyramid ап намиране на грешното мнение, защото то погрешно възприема, че един път е съвпадение, а в действителност, това не е така.
- Уговорката за издаване https://github.com/Pylons/pyramid/issues/461 (което прави възможно за методи инстанция да се използва и като виждане callables) въведе назад несъвместимост при методи, които декларирали само аргумент искане бяха използва. Вижте https://github.com/Pylons/pyramid/issues/503
Какво ново версия 1.3 Beta 2:
- Методът pyramid.request.Request.partial_application_url е вече не е в Документи на API. Той е трябвало да бъде самостоятелен метод; публикуването му в документацията като метод на API е било грешка, и тя е преименувана на нещо лично.
- Когато статичен оглед е регистрирана използвайки абсолютно файлова система пътека на Windows, функция request.static_url не е работа за генериране на URL адреси на своите ресурси. Симптом: & quot; Не статично съвпадение определение URL C:. Foobarbaz & quot;
- Направи всички тестове минават на Windows XP.
- Bug в ACL удостоверяване проверка на Python 3: разрешителни и principals_allowed_by_permission метода на pyramid.authorization.ACLAuthenticationPolicy на може да се върне на неподходящо истинската стойност, когато разрешение на ACL е низ, отколкото редица, и то само ако разрешението на ACL низ е подниз на стойността на разрешение се подават на функцията.
- този бъг ефекти не Pyramid разгръщането за Python 2; това е грешка, която съществува само в внедрявания работи на Python 3. Тя съществува от Pyramid 1.3a1.
- Този бъг се дължи на присъствието на атрибут __iter__ на низове по Python 3, който не присъства под струни в Python 2.
Какво ново версия 1.3 Beta 1:
- Корекции на грешки:
- pyramid.config.Configurator.with_package не работи, ако конфигуратора беше стар стил pyramid.configuration.Configurator например.
- политики разрешения Pyramid, не се появяват в introspector.
- обезценяване на лева:
- Всички позовавания на променливата на искане tmpl_context са били извадени от докторите. Неговото съществуване в Pyramid е объркващо за хора, които никога не са били пилоните потребители. Той е добавен като пренасянето удобство за потребителите пилони в Pyramid 1.0, но тя никога не се хванал на защото правейки системата Pyramid е много по-различно, отколкото Пилони "беше, и съществуват алтернативни начини да се направи това, което тя е проектирана да предложи в Пилони. Тя ще продължи да съществува и quot; завинаги & quot; но това няма да бъде препоръчана или споменати в Документи.
<силни> Изисквания :
- Python
Коментари не е намерена