2019独角兽企业重金招聘Python工程师标准>>>

例子:本项目在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 Templatemako.directories = adview:templatesmako.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

pyramid新建项目相关推荐

  1. 在VS中,如何新建项目,如何添加类库

    学习了C#基础后就自己做了一个小小的qq空间,感觉挺好的.之后,由于团队需要被分配到测试方面去了,虽然测试时会看C#代码,但终究不是自己写的,没有那种深究的热情,尽管师兄说,看代码是最快提升的方法,因 ...

  2. Qt新建项目No valid kits found解决思路

    Qt新建项目No valid kits found解决思路 第一次用Qt Creator创建Project时,进入Kit Selection窗口后,会提示No Valid kits found. Pl ...

  3. IntelliJ idea 新建项目并导入netty(转)

    转自:https://blog.csdn.net/chen_xi_hao/article/details/79431756 前言 笔者的主要技能是移动端开发,eclipse和android studi ...

  4. svn 提交到远程仓库_Linux学习16gitlab新建项目提交代码

    前言 gitlab前面已经搭建好了,如果我们想用把代码上传到gitlab仓库上的话,先要新建一个项目仓库.然后本地安装git环境,就可以提交了 root用户 gitlab首次在浏览器上打开web页面, ...

  5. 微信小游戏开发教程-新建项目

    微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...

  6. 如何解决Win10不能新建项目的问题?

    如何解决Win10不能新建项目的问题? 参考文章: (1)如何解决Win10不能新建项目的问题? (2)https://www.cnblogs.com/haoxitong/p/9556065.html ...

  7. 解决pycharm新建项目后按钮灰色问题

    解决pycharm新建项目后按钮灰色问题 参考文章: (1)解决pycharm新建项目后按钮灰色问题 (2)https://www.cnblogs.com/maggie-zhang/p/1104575 ...

  8. eclipse新建项目时JRE的三个选项分别是什么意思?

    新建项目时,JRE项有三个选择,如下: 1.Use an execution environment JRE 2.Use a project specific JRE 3.Use default JR ...

  9. 升级macOS新系统后,Xcode7.2 Xcode7.3.1 在新建项目界面,出现了文字错乱的情况

    在升级macOS新系统后,Xcode7.2  Xcode7.3.1 在新建项目界面,出现了文字错乱的情况. 这种情况在Xcode8.0环境下是显示正常的,但是在7.2  .7.3.1环境下面是出现了错 ...

最新文章

  1. 自己写的一个测试函数执行效率的单元(test on Delphi 7)
  2. 分布式一致性算法Raft
  3. 关于 Java 性能调优的 11个简单技巧,多少人知道?
  4. springMVC教程--拦截器详解
  5. Linux的解压报错tar: Error is not recoverable: exiting now
  6. 1019:浮点数向零舍入
  7. Silverlight C# 游戏开发:L5 3D基本的灯光
  8. 插件 脚本 线程 进程
  9. nginx 的启动、停止与重启
  10. Paradox of Our Times--我们这个时代的尴尬
  11. Atitit 知识管理 知识的存储与检索 目录 1. Mis4大信息系统 2 1.1. crm客户流 通讯录 2 1.2. 企业资源规划(ERP) 财务卡片系统 通讯录,canlenda实现 2
  12. 翻译: 欢迎使用 KITTI Vision Benchmark Suite!
  13. A1 A2 B1 B2 英语分级单词 汇总
  14. 软件测试学习书籍8本【经典推荐】
  15. 如何在知网下载PDF文件
  16. 什么样的Python培训机构才是好机构?
  17. jQuery自定义插件
  18. 为什么我说,卖货直播平台开发的定位可以从这方面入手
  19. 小程序源码:全新动态视频壁纸-多玩法安装简单
  20. 新中大软件ngpower6.1单机版安装流程(WIN11)

热门文章

  1. 2016_shengyang_onsite
  2. 关于Github的那点事儿
  3. Manacher算法图解
  4. 把student a am i 变成 i am a student(两种方法)
  5. 音视频之使用sonic.cpp实现音频倍速播放功能
  6. 关于jffs2文件系统如何掉电保护
  7. POJ2114-Boatherds-树分治
  8. 渣本毕业两年经验,看这一篇就够了!
  9. WPF中解决内存泄露的几点提示与解决方法
  10. 使用lt;jsp:includegt;,不想写死URL,动态生成URL的解决的方法