Je veux construire une application Python-Flask et utiliser SAPUI5. J'ai essayé de construire cette petite application en Flask : https://sapui5.hana.ondemand.com/1.60.1/#/sample/sap.m.tutorial.walkthrough.05/preview
Tout a bien fonctionné et mon code ressemble à ceci :
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template("index.html")
if __name__ == '__main__':
app.run()
index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<title>SAPUI5 Walkthrough</title>
<script
id="sap-ui-bootstrap"
src="/static/sap-ui-core.js"
data-sap-ui-theme="sap_belize"
data-sap-ui-libs="sap.m"
data-sap-ui-compatVersion="edge"
data-sap-ui-preload="async"
data-sap-ui-resourceroots='{
"static": "./"
}'
>
</script>
<script>
sap.ui.getCore().attachInit(function () {
sap.ui.xmlview({
viewName: "mvc.view.App"
}).placeAt("content");
});
</script>
</head>
<body class="sapUiBody" id="content">
</body>
</html>
App.view.xml
<mvc:View
controllerName="mvc.controller.App"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Button
text="Say Hello"
press="onShowHello"/>
</mvc:View>
App.controller.js
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("mvc.App", {
onShowHello : function () {
// show a native JavaScript alert
/* eslint-disable no-alert */
alert("Hello World");
/* eslint-enable no-alert */
}
});
});
Ma question maintenant est : Comment puis-je passer des paramètres de mon app.py à l'App.view.xml et App.controller.js ?
À la fin, je veux obtenir quelque chose comme ceci :
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template("index.html", text="Hello World", buttonlabel="Say Hello")
if __name__ == '__main__':
app.run()
App.view.xml
<mvc:View
controllerName="mvc.controller.App"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Button
text="{{ buttonlabel }}"
press="onShowHello"/>
</mvc:View>
App.controller.js
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("mvc.App", {
onShowHello : function () {
// show a native JavaScript alert
/* eslint-disable no-alert */
alert({{ text }});
/* eslint-enable no-alert */
}
});
});