Hocam ben Flask ustunden gidiyorum. Daha dogrusu projem o yonde. Suan 3 tane farkli yol haritasi cizdim kendime 3 cozumude deniyecegim.@Can Deger eger butina basildiginda o butondaki text almak istiyorsaniz veya baska islemler yapmak istiyorsaniz JS domu arastirun.
@Can Deger sizce flask mi Django mu?
Tesekkur ederim. Suan ben 3 secenek buldum. 1. HTML elementlerine `button` ozelligi verip GET, POST sistemi ile cagirmak. 2. JS kodu kullanip HTML'e koyum o basilan yeri bir sekilde app.py'ima cagirmak. 3. Sistem ise butun resimlerin yerlerine koordinat vermek. Bunu `Selenium`, `.location` ile cozebilirmiyim diye bakiyorum. Tavisyelerinizi bekliyorum.Hocam javascript ile koordinatı alıp fetch api GET veya POST request yaparak koordinatları gönderin flask tarafına.
MouseEvent: clientX property - Web APIs | MDN
The clientX read-only property of the MouseEvent interface provides the horizontal coordinate within the application's viewport at which the event occurred (as opposed to the coordinate within the page).developer.mozilla.org Başarılar dilerim.Using the Fetch API - Web APIs | MDN
The Fetch API provides a JavaScript interface for making HTTP requests and processing the responses.developer.mozilla.org
Hocam ne yapmak istediğinizi anlamadım ben tam olarak. Dediğim gibi html içerisinde bodynin en altına bir script tagı açın.Tesekkur ederim. Suan ben 3 secenek buldum. 1. HTML elementlerine `button` ozelligi verip GET, POST sistemi ile cagirmak. 2. JS kodu kullanip HTML'e koyum o basilan yeri bir sekilde app.py'ima cagirmak. 3. Sistem ise butun resimlerin yerlerine koordinat vermek. Bunu `Selenium`, `.location` ile cozebilirmiyim diye bakiyorum. Tavisyelerinizi bekliyorum.
document.getElementById("resim-id").addEventListener("click", function (event){
fetch('request-yapılacak-url', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({"X":event.clientX,"Y":event.clientY})
}).then(response => response.json()).then(data => {
// sunucudan dönen json response ile işlemler
})
});
Tamamdir cok tesekkur ederim. Ben icersinde bir suru resim olan bir sayfa yaptim. Kullanici istedigine tiklayacak ben bunu sectim diyecek.Hocam ne yapmak istediğinizi anlamadım ben tam olarak. Dediğim gibi html içerisinde bodynin en altına bir script tagı açın.
Yukarıdaki gibi kullanıcının resim elementi içinde tıkladığı yerin konumunu alarak sunucuya yollayabilirsiniz. Sunucu tarafında da yapmak istediğinizi yapıp flaskın jsonify fonksiyonuyla response döndürün. Daha sonra ikinci then methodu içerisinde sayfada istediğiniz değişiklikleri sunucudan gelen response'a yapabilirsiniz.JavaScript:document.getElementById("resim-id").addEventListener("click", function (){ fetch('request-yapılacak-url', { method: 'post', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({"X":event.clientX,"Y":event.clientY}) }).then(response => response.json()).then(data => { // sunucudan dönen json response ile işlemler }) });
NOT: Flask post requestlerde csrf token isteyebilir request body içerisinde csrf token da döndürülmesi gerekebilir.
Hmm ozaman daha basit. O resim elementlerinin içine data özelliği koy. Örnek:Tamamdir cok tesekkur ederim. Ben icersinde bir suru resim olan bir sayfa yaptim. Kullanici istedigine tiklayacak ben bunu sectim diyecek.
<img src="..." data-index="1">
<img src="..." data-index="2">
<img src="..." data-index="3">
Yine bu JS kodu yazmam lazim degil mi? Data-Index'ini alacagim herhalde JSON formatina cevirecek ordanda onu alip isleyecegim.Hmm ozaman daha basit. O resim elementlerinin içine data özelliği koy. Örnek:
Sonra da sunucu tarafına direkt bu data değerini döndür. Kolayca hangi resme tıklandığını anlarsın.HTML:<img src="..." data-index="1"> <img src="..." data-index="2"> <img src="..." data-index="3">
Hocam burayi biraz detayli anlatma sansiniz olur mu ?Hmm ozaman daha basit. O resim elementlerinin içine data özelliği koy. Örnek:
Sonra da sunucu tarafına direkt bu data değerini döndür. Kolayca hangi resme tıklandığını anlarsın.HTML:<img src="..." data-index="1"> <img src="..." data-index="2"> <img src="..." data-index="3">
data-index vermeyi anladim. Ustteki ile beraber mi onu anlamadim. Nedense isin icine JS girince bir bugladim ben ama cozecegim.Hmm ozaman daha basit. O resim elementlerinin içine data özelliği koy. Örnek:
Sonra da sunucu tarafına direkt bu data değerini döndür. Kolayca hangi resme tıklandığını anlarsın.HTML:<img src="..." data-index="1"> <img src="..." data-index="2"> <img src="..." data-index="3">
Aynen, js ile data-index değerini döndürmen lazım sunucuya.Jquery kullanıyosan direkt şöyle yapabilirsin.Yine bu JS kodu yazmam lazim degil mi? Data-Index'ini alacagim herhalde JSON formatina cevirecek ordanda onu alip isleyecegim.
$(".resim-class-ismi").on("click", function (event){
$.ajax({
url:"sunucu-url",
type:"post",
data: {
"index":this.dataset.index,
}
success:function(json){},
error: function(){}
})
})
@app.route("/url-ismi",methods = ['POST'])
def resimAl()
resim-index = request.json.get("index")
# yapılacak işlemler ...
return jsonify() # response döndür
Hocam suan bir sey deniyorum sizin sistemide deniyecegim. Sagolun varolun. Zaten sizin sistem daha iyi. Not aldigimdan bu yaptigim dogrulari yanlislari sonuna kadar goturup kayit ediyorum. Size bir sorum olacak: Bu JS HTML ustunden yazilan bir olay mi? Soyle, tamam JS dosyasi yaziyorsun sonra <script> ile cagriyorsun herhalde? Dogru anlamismiyim ?Aynen, js ile data-index değerini döndürmen lazım sunucuya.Jquery kullanıyosan direkt şöyle yapabilirsin.
JavaScript:$(".resim-class-ismi").on("click", function (event){ $.ajax({ url:"sunucu-url", type:"post", data: { "index":this.dataset.index, } success:function(json){}, error: function(){} }) })Python:@app.route("/url-ismi",methods = ['POST']) def resimAl() resim-index = request.json.get("index") # yapılacak işlemler ... return jsonify() # response döndür
Yukarıdaki gibi yapılabilir.
Vanilla js öyle. html dom'u manüpüle etmekte kullanılıyor. Ancak nodejs veya deno ile backend vb. başka işlerde de kullanılabiliyor. Çok geniş kapsamlı bir dil.Hocam suan bir sey deniyorum sizin sistemide deniyecegim. Sagolun varolun. Zaten sizin sistem daha iyi. Not aldigimdan bu yaptigim dogrulari yanlislari sonuna kadar goturup kayit ediyorum. Size bir sorum olacak: Bu JS HTML ustunden yazilan bir olay mi? Soyle, tamam JS dosyasi yaziyorsun sonra <script> ile cagriyorsun herhalde? Dogru anlamismiyim ?
Alindi takip. Cok tesekkur ederim hocam vakit ayirdigin icin.Vanilla js öyle. html dom'u manüpüle etmekte kullanılıyor. Ancak nodejs veya deno ile backend vb. başka işlerde de kullanılabiliyor. Çok geniş kapsamlı bir dil.