Sanirim baslikdan neye ihtiyyacim oldugu belli oldu
return render_template(“ornek.html”, name = name)
bu sekilde veri html gondere biliyorum ve html icinden {{ name }} seklinde veriyi gore biliyorum ama ben bu veriyi javascripte nasil gondere bilirim googlede aradim birkac ornek denedim ama olmadi
name
'in bulunduğu html tagı veya bu tagın id veya class ismi üzerinden ulaşabilirsiniz diye düşünüyorum.
Basit bir örnek:
app.py
#!./venv/bin/python3.8
# -*- coding: utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home(name="home"):
return render_template("home.html", name=name, title="home")
if __name__ == "__main__":
app.run(debug=True)
home.html
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
{% if name %}
<p id="test" onmouseenter="onMouseEnter()" onmouseleave="onMouseLeave()" style="width: 1%">{{ name }}</p>
{% endif %}
<script>
var x = document.getElementById("test");
var original = x.innerHTML;
function onMouseEnter() {
x.innerHTML = "hello";
}
function onMouseLeave() {
x.innerHTML = original;
}
</script>
</body>
</html>
evet bu sekilde oluyor ama ben direk javascript ile cekmeyi istiyordum bu sekilde yapmayi basardim var a = ‘{{ name }}’; burada sorun suki javascript html icinde olduu zaman calisiyor baska dosya icinde oldugu zaman {{ }} bunu gormuyor
Galiba şöyle yapılması gerekiyor:
app.py
#!./venv/bin/python3.8
# -*- coding: utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home(name="home"):
return render_template("home.html", name=name, title="home")
if __name__ == "__main__":
app.run(debug=True)
home.html
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
// x isminde bir değişkene flask değişkenini atıyoruz.
var x = '{{ name }}';
</script>
<script src="{{ url_for('static', filename='js/test.js') }}"></script>
</head>
<body>
{% if name %}
<p id="test" onmouseenter="onMouseEnter()" style="width: 1%">{{ name }}</p>
{% endif %}
</body>
</html>
test.js
function onMouseEnter() {
alert(x);
}
Yalnız dikkatimi çekti, var x = '{{ name }}'
ifadesini, test.js
içine yazınca x
'in değeri {{ name }}
karakter dizisi oluyor. yine test.js
dosyası içinde var x = {{ name }}
yazınca da hiçbir işlem gerçekleşmiyor.