CN106055342A - 一种dojango下使用第三方Form扩展组件的方法 - Google Patents
一种dojango下使用第三方Form扩展组件的方法 Download PDFInfo
- Publication number
- CN106055342A CN106055342A CN201610420781.9A CN201610420781A CN106055342A CN 106055342 A CN106055342 A CN 106055342A CN 201610420781 A CN201610420781 A CN 201610420781A CN 106055342 A CN106055342 A CN 106055342A
- Authority
- CN
- China
- Prior art keywords
- dojo
- dojango
- party
- submit
- django
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 241001275944 Misgurnus anguillicaudatus Species 0.000 claims abstract description 52
- 238000009877 rendering Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/311—Functional or applicative languages; Rewrite languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种dojango下使用第三方Form扩展组件的方法,属于组件扩展技术领域。本发明首先通过使用Python写一个从Dojango的Form继承而来DjangoForm,然后将所写的通过Dojango渲染,在浏览器上形成一个用Dojo构建的表单;再填写表单,通过Dojo的submit方法将表单中填写的值通过request转交给Django;最后Django对收到的数据进行处理后传递给后台执行业务,后台执行业务完成后返回结果。通过上述过程,本发明能够解决第三扩展组建Form在Dojo表单下的提交问题。本发明建立在Django+Dojo+Dojango平台之上,通过在Dojo的表单中使用第三方扩展组件,在Form表单正确展示,后台数据正确获取,达到企业级web开发需求。
Description
技术领域
本发明涉及一种dojango下使用第三方Form扩展组件的方法,属于组件扩展技术领域。
背景技术
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。Dojo是一个用JavaScript语言实现的开源DHTML工具包。Dojo的目标是解决开发DHTML应用程序遇到的那些,长期存在、历史问题(historical problems with DHTML)。跨浏览器问题。Dojango是一个可重用的Django程序使得在Django项目的客户端使用Dojo框架。可以提供多个Dojo版本和源代码之间切换,提供帮助程序使得更多的互联网应用程序与Dojo结合得更好。
在目前企业级web开发中,为了达到快速开发的目的,很多企业在前端JavaScript的选择中,倾向于选择一些比较完善的JavaScript框架,如ExtJS,Dojo等。这些JavaScript框架提供了很多的页面组件,封装了很多功能,开发起来非常方便快捷。例如在NS8000存储管理软件项目中,采用Django框架,使用Dojango进行渲染,使用的前端JavaScript框架为Dojo,NS8000存储管理软件内部有一个功能,要实现文件系统创建,表单中需要使用拥有复选框的树形组件,在Dojo标准控件中没有这个组件,需要使用到第三方扩展控件cbtree。例如在NS8000的架构中,加入cbtree,但是在提交Dojo表单的时候无法将cbtree的值提交。
发明内容
本发明的目的是提供一种dojango下使用第三方Form扩展组件的方法,以解决第三扩展组建Form在Dojo表单下的提交问题。
本发明为解决上述技术问题而提供一种dojango下使用第三方Form扩展组件的方法,该方法的步骤如下:
1)使用Python写一个Django Form,该Form是从Dojango的Form继承而来;
2)将所写的通过Dojango渲染,在浏览器上形成一个用Dojo构建的表单;
3)填写表单,通过Dojo的submit方法将表单中填写的值通过request转交给Django;
4)Django对收到的数据进行处理后传递给后台执行业务,后台执行业务完成后返回结果。
所述submit方法只会提交标准Dojo表单组件的值,若使用到非Dojo标准组件,需要将该组件的值提交,提交过程如下:
A.在表单submit之前,将用户操作的非Dojo组件的值,通过标准JS从DOM获取;
B.在表单内写一个隐藏的Dojo标准input文本框,用于接收从DOM获取来的值;
C.通过隐藏的Dojo标准input文本框,将值提交,以达到将非Dojo组件的值提交。
第三方Form扩展组件为cbtree。
本发明的有益效果是:本发明首先通过使用Python写一个从Dojango的Form继承而来Django Form,然后将所写的通过Dojango渲染,在浏览器上形成一个用Dojo构建的表单;再填写表单,通过Dojo的submit方法将表单中填写的值通过request转交给Django;最后Django对收到的数据进行处理后传递给后台执行业务,后台执行业务完成后返回结果。通过上述过程,本发明能够解决第三扩展组建Form在Dojo表单下的提交问题。本发明建立在Django+Dojo+Dojango平台之上,通过在Dojo的表单中使用第三方扩展组件,在Form表单正确展示,后台数据正确获取,达到企业级web开发需求。
附图说明
图1是标准组件的第三方组件的表单构建模型图;
图2是非标准组件的第三方组件的表单构建模型图;
图3是以cbtree作为第三方Form扩展组件的表单构建模型图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的说明。
本发明使用Python写一个Django Form,Form从Dojango的Form继承而来,可以渲染;将Form通过Dojango渲染,在浏览器上形成一个用Dojo构建的表单;填写完表单,点击提交按钮,会执行Dojo的submit方法,submit方法将表单中填写的值通过request转交给Django,进行数据处理;数据处理后,传递给后台执行业务;业务执行完成后返回结果。
例如本发明在NS8000存储管理平台中加入了第三方扩展表单控件,NS8000存储管理平台采用Django框架,前端JavaScript使用Dojo。NS8000存储管理系统中的表单构建模型如图1所示。
其中submit方法只会提交标准Dojo表单组件的值,如果使用到非Dojo标准组件,需要通过适配器Adapter才能将非Dojo标准组件的值提交,如图2所示。在表单submit之前,将用户操作的非Dojo组件的值,通过标准JS从DOM获取。在表单内写一个隐藏的Dojo标准input文本框,用于接收从DOM获取来的值。通过这个Dojo标准的隐藏的input文本框,将值提交,从而达到将非Dojo组件的值提交。
下面以cbtree作为第三方Form扩展组件为例进行说明,如图3所示,Client是客户端,Target是cbtree,Adaptee是隐藏的dojo文本框,Adapter是适配器,具体实现方案是将DOM里cbtree数据交给dojo文本框,作用是将普通DOM request请求转换成SpecificRequest,通过POST的方式与表单一同传递给服务器端,从而让后端Python可以获取数据。Client端操作Target(cbtree),cbtree可以被DOM识别,而Dojo表单只可以获取Dojo组件传过来的请求(SpecificRquest),cbtree的数据无法被Dojo表单识别。
dojango下使用第三方Form扩展组件的方法的具体实施例步骤如下:
1.下载cbtree,将资源包导入到工程目录中;
2.在Django模板中引入cbtree.js;
3.写Diango自定义的Field,Widget,使得Form表单能够应用cbtree;
4.改写表单的HTML:加上一段JS和若干个隐藏的input文本框,JS的作用是通过DOM获取第三方组件的值,将值放入隐藏的input文本框中,input文本框需要定义在html的form标签内,值被表单提交;
5.在后台获取隐藏的input文本框的值。
本发明通过在Dojo的表单中使用第三方扩展cbtree组件,在Form表单正确展示,后台数据正确获取,达到企业级web开发需求,该方法可适用于任何第三方JS控件。
Claims (3)
1.一种dojango下使用第三方Form扩展组件的方法,其特征在于,该方法的步骤如下:
1)使用Python写一个Django Form,该Form是从Dojango的Form继承而来;
2)将所写的通过Dojango渲染,在浏览器上形成一个用Dojo构建的表单;
3)填写表单,通过Dojo的submit方法将表单中填写的值通过request转交给Django;
4)Django对收到的数据进行处理后传递给后台执行业务,后台执行业务完成后返回结果。
2.根据权利要求1所述的dojango下使用第三方Form扩展组件的方法,其特征在于,所述submit方法只会提交标准Dojo表单组件的值,若使用到非Dojo标准组件,需要将该组件的值提交,提交过程如下:
A.在表单submit之前,将用户操作的非Dojo组件的值,通过标准JS从DOM获取;
B.在表单内写一个隐藏的Dojo标准input文本框,用于接收从DOM获取来的值;
C.通过隐藏的Dojo标准input文本框,将值提交,以达到将非Dojo组件的值提交。
3.根据权利要求1或2所述的dojango下使用第三方Form扩展组件的方法,其特征在于,第三方Form扩展组件为cbtree。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610420781.9A CN106055342B (zh) | 2016-06-13 | 2016-06-13 | 一种dojango下使用第三方Form扩展组件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610420781.9A CN106055342B (zh) | 2016-06-13 | 2016-06-13 | 一种dojango下使用第三方Form扩展组件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106055342A true CN106055342A (zh) | 2016-10-26 |
CN106055342B CN106055342B (zh) | 2019-04-09 |
Family
ID=57168110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610420781.9A Expired - Fee Related CN106055342B (zh) | 2016-06-13 | 2016-06-13 | 一种dojango下使用第三方Form扩展组件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106055342B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516190A (zh) * | 2019-08-30 | 2019-11-29 | 深圳点猫科技有限公司 | 生成静态网页的方法与装置 |
CN110750248A (zh) * | 2018-07-23 | 2020-02-04 | 贵州白山云科技股份有限公司 | 一种用于传递现有组件的扩展信息的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158896A (zh) * | 2007-08-31 | 2008-04-09 | 南京联创科技股份有限公司 | 基于mvc的业务组装和页面模板化开发web平台的方法 |
US20130159379A1 (en) * | 2011-12-15 | 2013-06-20 | Sap Ag | App system platform |
CN104408167A (zh) * | 2014-12-09 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于django扩展Hue中sqoop功能的方法 |
CN104598513A (zh) * | 2014-11-03 | 2015-05-06 | 腾讯科技(成都)有限公司 | 一种基于网页框架的数据流控制方法和系统 |
CN105453091A (zh) * | 2013-06-25 | 2016-03-30 | 生命扫描苏格兰有限公司 | 与至少一个社交网络通信的生理监测系统 |
US20160117159A1 (en) * | 2014-10-28 | 2016-04-28 | Soeren Balko | Embeddable Video Capturing, Processing And Conversion Application |
-
2016
- 2016-06-13 CN CN201610420781.9A patent/CN106055342B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158896A (zh) * | 2007-08-31 | 2008-04-09 | 南京联创科技股份有限公司 | 基于mvc的业务组装和页面模板化开发web平台的方法 |
US20130159379A1 (en) * | 2011-12-15 | 2013-06-20 | Sap Ag | App system platform |
CN105453091A (zh) * | 2013-06-25 | 2016-03-30 | 生命扫描苏格兰有限公司 | 与至少一个社交网络通信的生理监测系统 |
US20160117159A1 (en) * | 2014-10-28 | 2016-04-28 | Soeren Balko | Embeddable Video Capturing, Processing And Conversion Application |
CN104598513A (zh) * | 2014-11-03 | 2015-05-06 | 腾讯科技(成都)有限公司 | 一种基于网页框架的数据流控制方法和系统 |
CN104408167A (zh) * | 2014-12-09 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于django扩展Hue中sqoop功能的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750248A (zh) * | 2018-07-23 | 2020-02-04 | 贵州白山云科技股份有限公司 | 一种用于传递现有组件的扩展信息的方法及装置 |
CN110750248B (zh) * | 2018-07-23 | 2023-06-02 | 贵州白山云科技股份有限公司 | 一种用于传递现有组件的扩展信息的方法及装置 |
CN110516190A (zh) * | 2019-08-30 | 2019-11-29 | 深圳点猫科技有限公司 | 生成静态网页的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106055342B (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105824787B (zh) | 一种html模板动态配置的控制方法及系统 | |
US9081463B2 (en) | Systems and methods for run-time editing of a web page | |
CN106569824B (zh) | 页面数据编译的方法和装置、页面渲染的方法和装置 | |
JP5550636B2 (ja) | 潜在転送表示を使用してドキュメントを編集する技術 | |
US8775930B2 (en) | Generic frequency weighted visualization component | |
CN109388766B (zh) | 页面加载的方法和装置 | |
US8930824B2 (en) | Facilitating propagation of user interface patterns or themes | |
US7805464B2 (en) | Web viewer setup dialog and grammar for generating web addresses | |
CN105094786A (zh) | 基于JavaScript定制页面的方法及系统 | |
CN105354013A (zh) | 应用界面渲染方法及装置 | |
US20170192877A1 (en) | Mobile application development and deployment | |
WO2017049769A1 (zh) | 一种用于在移动应用中提供目标页面的方法与设备 | |
CN104063401B (zh) | 一种网页样式地址合并的方法和装置 | |
CN108228180A (zh) | 基于可视化界面设计的自动代码生成方法及系统 | |
US20170322944A1 (en) | Automatic entry of suggested translated terms in an online application program | |
CN112100550A (zh) | 一种页面构建方法和装置 | |
CN103488732A (zh) | 一种静态页面生成方法及装置 | |
US9330074B2 (en) | Style sheet speculative preloading | |
CN111831384A (zh) | 语言切换方法和装置、设备及存储介质 | |
CN109460546A (zh) | 表单生成方法、装置及电子设备 | |
CN104346398A (zh) | 网上自动填报数据的方法及其装置 | |
US9280361B2 (en) | Methods and systems for a real time transformation of declarative model and layout into interactive, digital, multi device forms | |
US10742764B2 (en) | Web page generation system | |
CN102799764B (zh) | 一种基于Web的工程计算系统及方法 | |
CN104156421B (zh) | 页面的展现方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190409 |
|
CF01 | Termination of patent right due to non-payment of annual fee |