pyramid新建項目

例子:本項目在D盤html

(1) C:\Users\Adminstrator>D: #進入到D盤python

(2) D:>mkdir test #新建目錄testweb

(3) D:\cd test #進入test目錄shell

(4) D:\test>pcreate -s starter myproject #新建項目名爲myprojectapp

(5) D:\test>cd myproject #進入項目框架

(6) D:\test\myproject>python setup.py develop 添加項目所須要的配置文件函數

(7) D:\test\myproject>pserve development.ini運行項目工具

一個簡單的pyramid項目建立成功!!!單元測試

cmd中 刪除非空目錄:>rmdir /s \q測試

清屏:>cls

  1. 新建的pyramid項目只能識別「.py」的靜態頁面文件,識別「html」靜態文件解決方案以下:

(1) 項目根目錄下:product.ini 和 development.ini中加入「html」模塊支持

如:
; For Mako Template
            mako.directories = adview:templates
            mako.strict_undefined = true
(2)項目的 __init__.py文件的以下位置加入:
config = Configurator(settings=settings)
    config.add_renderer(".html", "pyramid.mako_templating.renderer_factory")
    config.add_static_view('static', 'static', cache_max_age=3600)
  1. 在view視圖

@view_config(route_name='home', reauest_methos="POST",accept='text/HTML') def myview(request): return Response("<h1>hello world</h1>")

Pyramid提供了一種聲明式的權限管理,能夠按照必定的受權策略保護view,以保證只有通過認 證的用戶才能訪問應用。在Pyramid中,權限管理體系被明確的分紅了認證和受權兩個部分。
認證系統將request中的身份證實轉化成一個或多個系統能識別的主體標識。這些表示表明了request中當前生效的用戶、組信息。
受權系統則根據獲得的主體標識、視圖配置、上下文決定是否有訪問權限。

三、將url路徑從__init__文件中分離出來,新建一個url文件並把路徑寫在url文件中

(1)__init__文件 from pyramid.config import Configurator
from project.url import add_adview

def main(global_config, **settings):
   config = Configurator(settings=settings)
   config.add_static_view('static', 'static', cache_max_age=3600)
   config.add_renderer(".html", "pyramid.mako_templating.renderer_factory")

    add_adview(config)     #路徑
    config.scan("project")  #project爲項目名
    return config.make_wsgi_app()

(2)新建url.py文件

 def add_adview (config):
     config.add_route (name = 'home', pattern = '/')


先看一下MyProject/目錄,這是一個典型的python工程發佈結構,其中的一些文件以下:
  1. CHANGES.txt 變動說明,可使用ReStructuredText格式

    MANIFEST.in 	裝箱文件,決定哪些代碼會部署
    
    README.txt 	項目簡介,使用ReStructuredText 格式編寫。
    
    development.ini 	PasteDeploy配置文件,用與開發階段
    
    production.ini 	PasteDeploy配置文件,用發佈階段
    
    setup.cfg和setup.py 	setuptools的配置文件和執行文件
    
    若是須要對這個結構驚喜擴張,能夠參考python開源項目目錄結構。

    在MyProject目錄下還會建立一個python package:myproject,這是放置Pyramid應用。若是用過Django,會發現這個目錄結構與Django的很像。簡單說明一下:

  2. init_.py Python package初始化腳本。Pyramid框架在其中放置了一個main函數00,做爲一些命令(如pserve,pshell,pviews等)的入口。

    models.py 	模型代碼。在使用alchemy工程模板時刻文件包含了SQLAlchemy的基本代碼和一 個model類的例子
    
    scripts 	開發用的一些腳本工具
    
    static 	web靜態文件
    
    templates 	模板目錄
    
    tests.py 	單元測試代碼
    
    views.py 	視圖代碼

1、Pyramid權限處理流程

1. 用戶用過一個特定的URL訪問應用,所以在應用中生成一個request。

2. 基於這個request的信息,經過resource定位找到一個上下文(context)(不管是漫遊仍是URL分發)。

3. 經過視圖定位找到一個合適的視圖,

4. 若是認證策略生效,將由此與request生成幾個主體(principal)的標識。

5. 若是受權策略生效,而且視圖配置中定義定義了permission參數,將由這它們以及上下文、主體標識來共同決定是否有權訪問這個視圖。

6. 若是受權成功,則調用視圖。

7. 若是受權失敗,則調用forbidden視圖。
相關文章
相關標籤/搜索