pyramid新建项目

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

例子:本项目在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux环境下段错误的产生原因及调试方法小结

LZ看到一篇关于Linux环境段错误的产生原因的文章&#xff0c;感觉不错&#xff0c;但不是C博客里面&#xff0c;不知如何转载&#xff0c;这里转贴过来&#xff0c;感谢原博主&#xff0c;文章如下: Linux环境下段错误的产生原因及调试方法小结 1. 段错误是什么 一句话来说&am…

【BZOJ3036】绿豆蛙的归宿 拓补排序+概率

【BZOJ3036】绿豆蛙的归宿 Description 随着新版百度空间的下线&#xff0c;Blog宠物绿豆蛙完成了它的使命&#xff0c;去寻找它新的归宿。 给出一个有向无环的连通图&#xff0c;起点为1终点为N&#xff0c;每条边都有一个长度。绿豆蛙从起点出发&#xff0c;走向终点。到达每…

cnpm与npm的区别

From: https://blog.csdn.net/chi1130/article/details/72773278 npm介绍 说明&#xff1a;npm&#xff08;node package manager&#xff09;是nodejs的包管理器&#xff0c;用于node插件管理&#xff08;包括安装、卸载、管理依赖等&#xff09; 使用npm安装插件&#xff1…

Linux C 学习 单向链表

最近从Linux C数据结构和算法学起&#xff0c;下面是一个单向链表的写法&#xff0c;代码如下&#xff1a; [cpp] view plaincopy #include <stdio.h> #include <malloc.h> int n0; typedef struct code { int data; struct code *next; }Li…

《C专家编程》第二章——这不是Bug,而是语言特性

无论一门语言有多么流行或多么优秀&#xff0c;它总是存在一些问题&#xff0c;&#xff23;语言也不例外。本章讨论的重点是&#xff23;语言本身存在的问题&#xff0c;作者煞费苦心的用一个太空任务和软件的故事开头&#xff0c;也用另一个太空任务和软件的故事结尾&#xf…

数组与指针的恩怨

1、数组的本质 &#xff08;1&#xff09;、一种构造类型&#xff0c;&#xff08;2&#xff09;、相同类型的连续分配内存&#xff0c;&#xff08;3&#xff09;、数组的大小为sizeof(type)*array_size&#xff08;模子type[ ]大小&#xff09;,&#xff08;4&#xff09;、数…

path.join 和 path.resolve的区别

path.join path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起&#xff0c;并规范化生成的路径。 path.join([...paths]);...paths string类型 path.join(__dirname, ./02art-template.js); // C:\Users\liangliang17\Desktop\Node_study\Node\5.path\02…

[转载]如何将Putty生成的PrivateKey转换为SecureCRT所需的PublicKey

为什么80%的码农都做不了架构师&#xff1f;>>> 首先说明&#xff0c;标题不一定准确&#xff0c;因为盆地并未详细了解清楚这里的公钥、私钥机制&#xff0c;只是根据以前的印象有个大概的理解&#xff0c;且最终以解决问题为主要目的&#xff0c;并未深究。标题的…

Linux c 算法与数据结构--双向链表

链表是linux c中非常重要的数据结构&#xff0c;双向链表与单向链表的区别&#xff0c;是它每个节点有两个指针域&#xff0c;分别指向该节点的前一个节点与后一个节点&#xff1b; 而链表的操作主要是查询、插入、删除、遍历等&#xff0c;下面来看一个双向链表&#xff0c;主…

执行shell出现bad interpreter

执行shell出现bad interpreter:No such file or directory linux执行shell出现bad interpreter:No such file or directory的原因是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样&#xff0c;但是在VI下面如果不Set一下又完全看不出来。 解决方法&…

exports、module.exports和export、export default到底是咋回事

前言 难得有空&#xff0c;今天开始重新规范的学习一下node编程。 但是引入模块我看到用 require的方式&#xff0c;再联想到咱们的ES6各种export 、export default。 阿西吧&#xff0c;头都大了.... 头大完了&#xff0c;那我们坐下先理理他们的使用范围。 require: node …

linux自动备份网站和数据库,到另外服务器上,为当前用户创建定时任务

2019独角兽企业重金招聘Python工程师标准>>> 两台服务器111&#xff0c;和117服务器,每天完成111服务器上网站和数据库自动备份到117服务器上 1&#xff1a;我的111服务器上是当前用户&#xff1a;sx A: 查看当前用户的计划任务&#xff1a;crontab -l是查看当前…

自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法...

前言&#xff1a;这几天做客户回访&#xff0c;感触很大&#xff0c;用户只要是留反馈信息&#xff0c;总是一种恨铁不成钢的心态&#xff0c;想用你的app&#xff0c;却是因为你的技术问题&#xff0c;让他们不得不放弃&#xff0c;而你一个回访电话却让他们尽释前嫌&#xff…

Linux c 算法与数据结构--栈

前段时间写了双向链表&#xff0c;现在写个栈&#xff0c;写之前&#xff0c;先简单介绍链表 队列  栈的区别&#xff1a; 链表&#xff0c;队列&#xff0c;堆栈的区别 1、栈是个有底的口袋&#xff0c;像袜子。 队列是没底的口袋&#xff0c;像通心粉。 所以&#xff1a;栈…

关于sass(scss)、less、postcss、stylus等的用法与区别

一. Sass/Scss、Less、stylus是什么? 它们都是css预处理器。css预处理器的概念&#xff1a;CSS预处理器用一种专门的编程语言&#xff0c;进行Web页面样式设计&#xff0c;然后再编译成正常的CSS文件&#xff0c;以供项目使用。CSS预处理器为CSS增加一些编程的特性&#xff0…

计算机点滴

CD&#xff0c;VCD&#xff0c;DVD的区别CD:纯音乐 VCD&#xff1a;影视初级光盘 DVD&#xff1a;高清晰影视光盘 EVD&#xff1a;高清晰数码影视 MPEG4&#xff1a;压缩高密影视光盘 MP3&#xff1a;压缩纯音乐1.容量大小不同&#xff1a;DVD可以装更多的内容。CD与DVD差别在于…

Linux C 算法与数据结构 --二叉树

头文件BiTree.h [cpp] view plaincopy typedef int Item; typedef struct node { struct node * lchild; struct node * rchild; Item data; }BiTNode,*BiTree; /*构造一棵新的二叉树*/ BiTree InitBiTree(BiTNode *root); /*生成节点*/ …

Spring 实现数据库读写分离

Spring 实现数据库读写分离 现在大型的电子商务系统&#xff0c;在数据库层面大都采用读写分离技术&#xff0c;就是一个Master数据库&#xff0c;多个Slave数据库。Master库负责数据更新和实时数据查询&#xff0c;Slave库当然负责非实时数据查询。因为在实际的应用中&#xf…

vue 3.x 中使用ele-image时相对路径的图片加载失败

参考文档&#xff1a; https://element.eleme.cn/#/zh-CN/component/installation 环境: Mac OS X 10.12 [zcmele 2]$node -v v12.6.0 [zcmele 3]$npm -v 6.9.0 [zcmele 4]$cnpm -v cnpm6.1.0 (/usr/local/lib/node_modules/cnpm/lib/parse_argv.js) npm6.10.2 (/usr/local/li…

JavaScript函数绑定

一个简单的函数绑定 在JavaScript与DOM交互中经常需要使用函数绑定&#xff0c;定义一个函数然后将其绑定到特定DOM元素或集合的某个事件触发程序上&#xff0c;绑定函数经常和回调函数及事件处理程序一起使用&#xff0c;以便把函数作为变量传递的同时保留代码执行环境。 <…