pyramid新建项目

例子:本项目在D盘

(1) C:\Users\Adminstrator>D: #进入到D盘

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

(3) D:\cd test #进入test目录

(4) D:\test>pcreate -s starter myproject #新建项目名为myproject

(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中当前生效的用户、组信息。
授权系统则根据得到的主体标识、视图配置、上下文决定是否有访问权限。

3、将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 	视图代码
    

一、Pyramid权限处理流程

1. 用户用过一个特定的URL访问应用,因此在应用中生成一个request。

2. 基于这个request的信息,通过resource定位找到一个上下文(context)(不论是漫游还是URL分发)。

3. 通过视图定位找到一个合适的视图,

4. 如果认证策略生效,将由此与request生成几个主体(principal)的标识。

5. 如果授权策略生效,并且视图配置中定义定义了permission参数,将由这它们以及上下文、主体标识来共同决定是否有权访问这个视图。

6. 如果授权成功,则调用视图。

7. 如果授权失败,则调用forbidden视图。

转载于:https://my.oschina.net/u/1013711/blog/151538

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值