angularJS & web2py: calling python from ng/javascript/ht
angularJS & web2py: calling python from ng/javascript/html
我在一个应用程序中使用AngularJS(主要是客户端)和web2py(主要是服务器端)。
我现在有个问题。
在程序的某一点上,我使用AngularJS从客户端获取一些数据,这些数据存储在AngularJS变量中。我计划使用$http。Post想直接提交这些数据到数据库,但是由于跨域问题不能正常工作。
现在我正试图传递这些数据(它们是JSON格式)回到web2py,让web2py插入这些数据到数据库。(类似于提交SQLFORM)。
无论如何,我可以传递这些数据作为一个参数web2py函数和调用javascript代码中的函数?
我脑海中可能的方法:1)既然我可以在html中使用{{}}编写python,我可以在javascript中编写html,我可以在javascript中使用类似于:document.write({{python code}})
的东西编写python代码吗?
我试过这个,但无论我写什么html它去一个全新的html页面。我也试过document.getElementById('testDiv').write("<p></p>");
,但它不起作用。
2)使用ajax,我不熟悉ajax,任何例子都会非常感激!
任何想法吗?
谢谢大家!
好了,你把我弄糊涂了,让我们看看我写的对不对1-角作为你的前端2 . python作为后台
3-你正在用python呈现HTML文档并将其交付给浏览器由于python模板语言使用{{}}作为分隔符,我假设您也更改了angular的分隔符
无论使用ajax还是重载,您都需要提供一个python post处理程序脚本。它获取数据并更新数据库。如果这是一个模式,你要做AJAX CRUD操作,你应该使用angular资源ngResource,如果不是一个简单的$http.post(url,data).success(function(response){})
https://docs.angularjs.org/api/ng/service/http # post美元
其中url为表单提交处理程序url。如果要使用表单,则需要将目标设置为隐藏在页面中的iframe,并且响应应该是一个脚本标记,该脚本标记获得与控制器相关的作用域,并让控制器知道操作的结果。这是一个旧的方法,但方便的时候,它来发送信息的网站,不允许CORS,顺便说一句,这可能是你的问题的解决方案,当存储数据直接到你的数据库,你可能只需要启用CORS头在你的存储引擎API,这应该允许你提交信息,即使来自不同的域
经过几个小时的挣扎和无数次的谷歌搜索,这是我的变通方案:
主要问题:数据存储在AngularJS中,但由于跨域问题,AngulatJS无法通过API向数据库提交数据。但是Web2py可以使用sqlform向数据库提交数据。
我的方法:1.)当用户单击提交按钮时,调用'ng-click="submitBtn()"'。submitBtn()是ng-controller的一个函数,它可以访问数据。2.)在submitBtn()中,函数首先通过
将数据写入web2py的sqlform。document.getElementById('inputId').value=$scope.data;
然后函数通过
点击sqlform提交按钮document.getElementById('submitBtn').click();
我花了很多时间来找出web2py自动生成的sqlform中字段的元素id。找到它们的方法是在浏览器中使用开发人员的inspect元素工具并直接查看源代码。
希望这将帮助有人将面临同样的问题!
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- 当我的所有 Ng-from 都有效时启用一个按钮
- ng-options from a json with angularjs
- Angulajs ng-options from a json with child object
- Defining ng-view="NAME" from RouteProvider
- Access $index from ng-repeat
- 改变ng-repeat from指令内部的作用域
- Ng-init from an ng-repeat
- angular ng-bind using path from string
- angularjs ng-repeat image base64 from firebase
- angularJS & web2py: calling python from ng/javascript/ht
- angularjs ng-class on html from object property
- 如何在Angularjs中禁用ng show from指令