Gå til innhold

Python funksjon til Javascript


Anbefalte innlegg

Hei!

Har et pythonprogram jeg har jobbet ganske lenge på, som jeg nå trenger å sette inn i en javascriptfil.

Pythonprogrammet mitt returnerer en streng, og bare en streng.

Denne strengen trenger jeg da et sted i javascriptkoden min for å få den til å fungere.

 

Noen som har en løsning? Lest litt rundt AJAX(?) men vet ikke helt om det er det jeg trenger for å få til dette.

Lenke til kommentar
Videoannonse
Annonse

I dette tilfellet tror jeg det hjelper om du ikke er så kryptisk. Hvorfor må du bruke python for å finne tallet javascript jobber med? Kjøres dette lokalt eller over internett? Har du i såfall en server oppe?

Uten å vite mer synes jeg det høres ut som en jobb for http://flask.pocoo.org/og ett eller annet UI rammeverk. Angular.js eller kanskje React.js? Eller, hvis det ikke er en del av en web app så kan du bare bruke gode gamle XMLHttpRequest

Endret av Enthroner
Lenke til kommentar

I dette tilfellet tror jeg det hjelper om du ikke er så kryptisk. Hvorfor må du bruke python for å finne tallet javascript jobber med? Kjøres dette lokalt eller over internett? Har du i såfall en server oppe?

 

Uten å vite mer synes jeg det høres ut som en jobb for http://flask.pocoo.org/og ett eller annet UI rammeverk. Angular.js eller kanskje React.js? Eller, hvis det ikke er en del av en web app så kan du bare bruke gode gamle XMLHttpRequest

Okei, her er saken: Skrevet en ganske lang kode for å få ut spesielle datoer i flere måneder i python, og skal bruke dette i en ganske enkel javascriptkode. Selv er jeg mye flinkere i Python enn i javascript, noe som er grunnen til at jeg har lyst til å bruke denne løsningen:p 

 

Alt er lokalt. 

Lenke til kommentar

Vel, jeg går utifra at JS-filen din skal kjøre i nettleseren. Den desidert enkleste løsningen vil være å få pythonscriptet ditt til å outputte resultatet til en fil (i json-format). Da kan du eksponere filen med webserveren din og hente det med ajax i javascripten din.

Lenke til kommentar

Bruk Flask som foreslått Enthroner.

Du sender resultat fra funksjonen med Flask sin jsonify().

Du kaller Python funksjonen din igjennom et jQuery kall med getJSON().

getJSON() gjør et Ajax kall til Python funksjonen.

 

Kan vise med noe utdrag fra kode jeg har brukt før.

server:

@app.route('/python_func')
def hex_text():
    '''Return hex color text'''
    d = {}
    d['hex'] = "#{:06x}".format(randint(0,0xFFFFFF)).upper()
    return jsonify(d)

Klient:

$(document).ready(function() {
    $("button").click(function() {
        $.getJSON('/python_func', function(dat) {
$("body").css({background: dat['hex']}); 
$("h1").text(dat['hex']);       
        });
    });
});

Edit:

Kan også nevne @app.context_processor.

Med denne kan du sende resultat fra funksjon i dictionary format til Jinja template på klientsiden.

Server:

@app.context_processor
def utility_processor():
    def format_price(amount, currency=u'€'):
        return u'{0:.2f}{1}'.format(amount, currency)
    return dict(format_price=format_price)

Klient:

<p>Prisen er {{ format_price(0.33) }}</p>

 

Endret av snippsat
  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...