pyramid新建项目
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
- 新建的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)
- 在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工程发布结构,其中的一些文件如下:
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的很像。简单说明一下:
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新建项目相关推荐
- 在VS中,如何新建项目,如何添加类库
学习了C#基础后就自己做了一个小小的qq空间,感觉挺好的.之后,由于团队需要被分配到测试方面去了,虽然测试时会看C#代码,但终究不是自己写的,没有那种深究的热情,尽管师兄说,看代码是最快提升的方法,因 ...
- Qt新建项目No valid kits found解决思路
Qt新建项目No valid kits found解决思路 第一次用Qt Creator创建Project时,进入Kit Selection窗口后,会提示No Valid kits found. Pl ...
- IntelliJ idea 新建项目并导入netty(转)
转自:https://blog.csdn.net/chen_xi_hao/article/details/79431756 前言 笔者的主要技能是移动端开发,eclipse和android studi ...
- svn 提交到远程仓库_Linux学习16gitlab新建项目提交代码
前言 gitlab前面已经搭建好了,如果我们想用把代码上传到gitlab仓库上的话,先要新建一个项目仓库.然后本地安装git环境,就可以提交了 root用户 gitlab首次在浏览器上打开web页面, ...
- 微信小游戏开发教程-新建项目
微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...
- 如何解决Win10不能新建项目的问题?
如何解决Win10不能新建项目的问题? 参考文章: (1)如何解决Win10不能新建项目的问题? (2)https://www.cnblogs.com/haoxitong/p/9556065.html ...
- 解决pycharm新建项目后按钮灰色问题
解决pycharm新建项目后按钮灰色问题 参考文章: (1)解决pycharm新建项目后按钮灰色问题 (2)https://www.cnblogs.com/maggie-zhang/p/1104575 ...
- eclipse新建项目时JRE的三个选项分别是什么意思?
新建项目时,JRE项有三个选择,如下: 1.Use an execution environment JRE 2.Use a project specific JRE 3.Use default JR ...
- 升级macOS新系统后,Xcode7.2 Xcode7.3.1 在新建项目界面,出现了文字错乱的情况
在升级macOS新系统后,Xcode7.2 Xcode7.3.1 在新建项目界面,出现了文字错乱的情况. 这种情况在Xcode8.0环境下是显示正常的,但是在7.2 .7.3.1环境下面是出现了错 ...
最新文章
- 自己写的一个测试函数执行效率的单元(test on Delphi 7)
- 分布式一致性算法Raft
- 关于 Java 性能调优的 11个简单技巧,多少人知道?
- springMVC教程--拦截器详解
- Linux的解压报错tar: Error is not recoverable: exiting now
- 1019:浮点数向零舍入
- Silverlight C# 游戏开发:L5 3D基本的灯光
- 插件 脚本 线程 进程
- nginx 的启动、停止与重启
- Paradox of Our Times--我们这个时代的尴尬
- Atitit 知识管理 知识的存储与检索 目录 1. Mis4大信息系统	2 1.1. crm客户流 通讯录	2 1.2. 企业资源规划(ERP) 财务卡片系统 通讯录,canlenda实现	2
- 翻译: 欢迎使用 KITTI Vision Benchmark Suite!
- A1 A2 B1 B2 英语分级单词 汇总
- 软件测试学习书籍8本【经典推荐】
- 如何在知网下载PDF文件
- 什么样的Python培训机构才是好机构?
- jQuery自定义插件
- 为什么我说,卖货直播平台开发的定位可以从这方面入手
- 小程序源码:全新动态视频壁纸-多玩法安装简单
- 新中大软件ngpower6.1单机版安装流程(WIN11)