当前位置: 首页 > news >正文

制作网站的模板下载阳江市商品房备案查询

制作网站的模板下载,阳江市商品房备案查询,网站怎么做h5支付宝支付接口,深圳市房产管理局官方网站例子中涉及到SQLAlchemy 得相关操作#xff0c;可以参考 上一随笔 Openstack 中规定#xff0c;扩展openstack得api有两种方式 创建新的WSGI 资源扩展原有得WSGI资源得控制器#xff08;我得理解是#xff0c;接受到API请求后#xff0c;具体得响应逻辑#xff09;这两种…例子中涉及到SQLAlchemy 得相关操作可以参考 上一随笔 Openstack 中规定扩展openstack得api有两种方式 创建新的WSGI 资源扩展原有得WSGI资源得控制器我得理解是接受到API请求后具体得响应逻辑这两种方式中都要求写一个新的模块来声明控制器类去处理请求和实现扩展。 在一个API模块中可以有一个或多个得资源和扩展控制器。 根据osapi_compute_extension 得配置 ExtensionManager 由nova/api/openstack/compute/contrib/ 下的__init__.py 文件加载标准的或者新的扩展。 所以扩展的api统一写在nova/api/openstack/compute/contrib/ 目录下 如本例子中得 nova/api/openstack/compute/contrib/documents.py   扩展API流程   实现控制器完成对资源的基本操作如增删改查和其他一些用户自定义的RESTful资源操作实现一个extensions.ExtensionDescriptor的子类 并实现get_resources 或者/以及get_controller_extensions来建立新的资源或扩展资源控制器即改写原有的业务逻辑。具体实现哪个方法这取决于是否要修改原有的RESTFul业务逻辑 或者说两个功能都需要将控制器和扩展的资源类写如新创建的的资源中 规范是资源类是模块问家名首字母大写这样做的目的是使nova.api.openstack.extensions.load_standard_extensions这个类能够是别该新资源并予以加载当添加新的资源extensions.ResourceExtension的子类的时候如果想要去除掉 {tenent_id} 链接则需要编写自定义的路由访问规则本例子中没有涉及documents.py 实现   1 # vim: tabstop4 shiftwidth4 softtabstop42 3 # Author: JiangYiTao 4 # Email: willierjytgmail.com5 6 import webob7 from webob import exc8 9 from nova import db 10 from nova import exception 11 from nova.api.openstack import extensions 12 authorize extensions.extension_authorizer(compute, documents) 13 14 # 请求控制器 即处理对资源的请求予以响应 15 class DocumentsController(): 16 the Documents API Controller declearation 17 18 def index(self, req): 19 import pdb; pdb.set_trace() 20 documents {} 21 context req.environ[nova.context] 22 authorize(context) 23 24 documents[key] helloworld 25 return documents 26 27 def create(self, req): 28 documents {} 29 context req.environ[nova.context] 30 authorize(context) 31 32 documents[key] helloworld 33 return documents 34 35 def show(self, req, id):37 documents {} 38 context req.environ[nova.context] 39 authorize(context) 40 41 try: 42 document db.document_get(context, id) 43 except : 44 raise webob.exc.HTTPNotFound(explanationDocument not found) 45 46 documents[document] document 47 return documents 48 49 def update(self, req): 50 documents {} 51 context req.environ[nova.context] 52 authorize(context) 53 54 documents[key] helloworld 55 return documents 56 57 def delete(self, req, id): 58 return webob.Response(status_int202) 59 # 根据命名规范 模块python源文件中的类名是模块名的首字母大写 60 class Documents(extensions.ExtensionDescriptor): 61 Documents ExtensionDescriptor implementation 62 63 name documents 64 alias os-documents 65 namespace www.www.com 66 updated 2013-05-19T00:00:0000:00 67 68 def get_resources(self): 69 register the new Documents Restful resource 70 71 resources [extensions.ResourceExtension(os-documents, 72 DocumentsController()) 73 ] 74 75 return resources在之后可以由以下几种方式来操作documents 资源 GET v2/{tenant_id}/ os-documents POST v2/{tenant_id}/ os-documents GET v2/{tenant_id}/ os-documents/{document_id} PUT v2/{tenant_id}/ os-documents/{document_id} DELETE v2/{tenant_id}/ os-documents/{document_id}    扩展api时所修改的文件 1 nova/db/api.py 2 nova/db/sqlalchemy/api.py 3 nova/db/sqlalchemy/models.py nova/db/api.py 文件内容#数据操作API提供的方法由Nova API 根据请求进行相应的操作 由上面的请求控制器进行调用 1 def document_get(context, document_id): 2 Get a document or raise if it does not exist. 3 return IMPL.document_get(context, document_id) nova/db/sqlalchemy/api.py 文件内容 # 完成通过由SQLAlchemy操作数据库 1 require_admin_context2 def document_get(context, document_id): 4 session get_session()5 with session.begin():6 query model_query(context, models.Document, sessionsession, read_deletedyes).filter_by(iddocument_id)7 8 result query.first()9 10 if not result or not query: 11 raise Exception() 12 13 return result SQLAlchemy 中定义的资源 nova/db/sqlalchemy/models.py具体使用见上一 篇日志 1 class Document(BASE, NovaBase): 2 Represents a document of customized extension. 3 4 __tablename__ documents 5 id Column(Integer, primary_keyTrue) 6 title Column(String(255)) View Code 至此添加添加新的nova API功能完成重起api服务调用 curl -v -X GET -H X-Auth-Token: 8e5971b3ce0a4f039b895681e7c29361 http://127.0.0.1:8774/v2/9b5903dd2d3443d8bb75ddffac27239a/extensions/os-documents  | python -mjson.tool命令可以看到返回扩展添加成功 1 {2 extension: {3 alias: os-documents, 4 description: Documents ExtensionDescriptor implementation, 5 links: [], 6 name: documents, 7 namespace: www.www.com, 8 updated: 2013-05-19T00:00:0000:009 } 10 } 数据库添加表documents 结构如下 mysql desc documents; -------------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | -------------------------------------------------------------- | id | int(11) | NO | PRI | NULL | auto_increment | | title | varchar(255) | NO | | NULL | | | created_at | datetime | YES | | NULL | | | updated_at | datetime | YES | | NULL | | | deleted_at | datetime | YES | | NULL | | | deleted | int(11) | YES | | NULL | | -------------------------------------------------------------- 6 rows in set (0.05 sec) mysql select * from documents; ----------------------------------------------------------------- | id | title | created_at | updated_at | deleted_at | deleted | ----------------------------------------------------------------- | 1 | abcdefgiifeife | NULL | NULL | NULL | NULL | | 2 | 1qaz2wsx | NULL | NULL | NULL | NULL | ----------------------------------------------------------------- 2 rows in set (0.03 sec) 调用命令 1 curl -X GET -H X-Auth-Token: 8e5971b3ce0a4f039b895681e7c29361 http://127.0.0.1:8774/v2/9b5903dd2d3443d8bb75ddffac27239a/os-documents/1 | python -mjson.tool2 返回结果3 {4 document: {5 created_at: null, 6 deleted: null, 7 deleted_at: null, 8 id: 1, 9 title: abcdefgiifeife, 10 updated_at: null 11 } 12 } 至此新添加的资源API 扩展成功 可以在此基础上进行进一步的修改完成需求 参考文档 https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_nova_api?langzh http://docs.openstack.org/developer/nova/devref/addmethod.openstackapi.html转载于:https://www.cnblogs.com/willier/archive/2013/05/22/3092961.html
http://wiki.neutronadmin.com/news/28159/

相关文章:

  • 成都网站建设的定位松江品牌网站建设
  • 可视化网站开发工具有哪些安阳汤阴县网站建设
  • 唐山网站排名提升wordpress微信插件
  • 怎么做微网站推广网站seo优化免费
  • 云主机开网站教程六一儿童节网站制作
  • 动态小网站专业网站优化软件
  • 中国做网站推广哪家好地方门户网站规划
  • 鹤岗市城乡建设局网站公共频道18点新闻
  • 沧州市东光建设局 网站毕业设计的网站
  • jsp可以做那些小网站网站收录是怎么回事
  • 南宁百度网站公司哪家好好网站建设公司哪家好
  • 网站开发做原型吗社区文化建设
  • 兼职做设计的网站wordpress wpenqueuescripts
  • seo如何网站正常更新工作室注册流程及需要的材料
  • wordpress如何修改语言优化网站除了百度站长
  • 网站建设岗位的简介建网站程序怎么办
  • jsp网站空间网站开发四川省住房与城乡建设厅网站
  • 马蜂窝网站建设目的虚拟机做实验的网站
  • 建设一个网站选择的服务器如何做自己的在线作品网站
  • 东台建设局官方网站广州新塘排名seo优化公司
  • 三网合一网站建设费用网站被恶意关键字访问
  • 肇庆网站建设推广如何推广一个项目
  • 白和黑人做网站网页设计心德体会500字范文
  • 动漫公司网站建设wordpress主题压缩包安装提示无效
  • 做网站的一般多少钱网上商城采购流程
  • 潍坊专业网站建设怎么收费iis网站开发教程
  • 汨罗网站建设中国建设领域专业人员网站
  • 西双版纳建设厅网站平台搭建与拆除
  • 用c 可以做网站吗军事新闻内容摘抄
  • 连云港市连云区建设局网站成都百度网站设计公司