Karkausvuodet backendistä

Anonyymi

Tuossa toisessa ketjussa onkin jo käsitelty karkausvuosien päättelyä Pythonilla. Nykyaikaisempi tapa on kuitenkin käyttää kyselyihin weppipalvelua.

Siksi voimmekin tehdä backend-palvelun, joka palauttaa kysyttäessä karkausvuodet. Esimerkiksi GET-pyyntö

[palvelin]/karkausvuodet/1901/2000

Palauttaisi JSON-muodossa:

{"vuodesta":"1901","vuoteen":"2000","karkausvuodet":[1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000]}

Kunhan tuo saadaan ensin toteutettua, niin voidaan tehdä sille vielä simppeli frontend käyttöliittymäksi.

17

799

    Vastaukset 17

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Jotkut haluaa aina vaan takaapäin...

    • Anonyymi

      Noin upeita ideoita ei kannata kertoa julkisesti. Nyt joku toinen voi ehtiä toteuttaa tuon idean ennen sinua ja tulee rikkaaksi kun laittaa kyselyn hinnaksi vaikka 1 € per karkausvuosi.

      • Anonyymi

        Tai laittaa sille sivulle 100 mainosta niin saa rahaa mainostuloilla...


      • Anonyymi00017

        Miksi kukaan maksaisi 1 € per karkausvuosi?

        Delphillä voisi helposti kirjoittaa DLL:n

        function IsLeapYear(const Year:Longword):Boolean; stdcall;

        Jos joku tykkää Pythonilla koodata, niin kai Pythonista pystyy kutsumaan DLL:ssä olevaa funktiota?

        Windowsissa on valtava määrä usein käytettyjä funktioita esim. näissä:

        kernel32.dll, user32.dll, gdi32.dll advapi.dll

        Ja käsittääkseni jos ajat Python -ohjelmaa Windowsissa, niin ohjelmasti taatusti kutsuu useitakin funktioita noista.

        Ainoa ero on se, että nuo DLL:t on Microsoftin tekemiä, mutta jos teen Delphillä DLL:n niin se on minun tekemä dll.

        Kutsutapa on molemmissa sama - stdcall.

        Huom: jos joku käyttää GNU -systeemistä peräisin olevia DLL:iä windowsissa niin ne on hyvin usein cdecl eikä stdcall.

        Tästä seuraa mm. se, että jos kirjoitat C -koodiin funktion abc, niin DLL:ssä se funktio on oikeasti nimeltään _abc.

        Ja JOS koodaat C++:lla: muista exportoida DLL:ään julkiseksi tarkoitetut funktiot näin:

        extern "C" {

        // Laita funktiomäärittelysi tähän

        }

        jos ET tee noin - funktioidesi oikeista nimistä ei kukaan ota selvää - ja ne vieläpä vaihtelevat sen mukaan mitä C++ -kääntäjää käytät!


    • Anonyymi
      • Anonyymi

        Frontin html/js. Minulla on backend virtuaalikoneessa olevalla palvelimella ja siksi host on ip-osoitteella.

        https://pastebin.com/2RLF8LnK

        Kokeilin ekaa kertaa myös Bootstrappia, jotta sai nappulasta vähän siistimmän. Olen melkoisen aloittelija tuossa html-hommassakin.


    • Anonyymi

      Pitää yrittää Flaskilla tuota.

      • Anonyymi

        Olipa helppo, muutaman minuutin homma, vaikka en ole koskaan ennen Flaskia käyttänytkään.

        https://pastebin.com/Kv37Cey0

        $ curl http://localhost:3334/karkausvuodet/1901/2000
        {"vuodesta":"1901","vuoteen":"2000","karkausvuodet":[1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000]}


      • Anonyymi
        Anonyymi kirjoitti:

        Olipa helppo, muutaman minuutin homma, vaikka en ole koskaan ennen Flaskia käyttänytkään.

        https://pastebin.com/Kv37Cey0

        $ curl http://localhost:3334/karkausvuodet/1901/2000
        {"vuodesta":"1901","vuoteen":"2000","karkausvuodet":[1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000]}

        CORS on hyvä lisätä myös, niin toimii paremmin frontin kanssa.

        https://flask-cors.readthedocs.io/en/latest/

        Eli importilla flask_cors ja sitten appin jälkeen

        cors = CORS(app, resources={r"/*": {"origins": "*"}})


      • Anonyymi
        Anonyymi kirjoitti:

        CORS on hyvä lisätä myös, niin toimii paremmin frontin kanssa.

        https://flask-cors.readthedocs.io/en/latest/

        Eli importilla flask_cors ja sitten appin jälkeen

        cors = CORS(app, resources={r"/*": {"origins": "*"}})

        Frontti Windowsissa Microsoft Edgellä. Backend on virtuaalikoneessa Ubuntu serverillä pyörivällä Python Flaskilla.

        https://ibb.co/Q7WsMQg


    • Anonyymi

      "Ketjusta on poistettu 1 sääntöjenvastaista viestiä."

      Mitähän tästä ketjusta on poistettu ja miksi?

      • Anonyymi

        Se kontitussäie. Sain sen kyllä pelaamaan kolmella kontilla. Eli nginx portinvartijana reverseproxynä jakaa liikennettä frontille ja backille, jotka pyörivät omissa konteissaan.

        Docker-composen ymliä en viitsi tähän laittaa, mutta nginx:n conffi on seuraavanlainen:

        upstream backend {
        server backend:3334;
        }

        upstream frontend {
        server frontend:8081;
        }

        server {
        listen 80;
        server_name localhost karkausvuodet.test www.karkausvuodet.test;

        location / {
        proxy_pass http://frontend;
        }

        location /karkausvuodet {
        proxy_pass http://backend;
        }

        location ~ /\.ht {
        deny all;
        }
        }


    • Anonyymi

      Hyvä näin.

    • Anonyymi

      MISTÄ kumpuaa tämä käsittämätön vimma tehdä kaikesta web -palvelua ????

      Jos itse tarvitsen tiedon siitä, mikä on karkausvuosi ja mikä ei, niin palanen paikallista ohjelmakoodia hoitaa tuon tarpeen parhaiten.
      Itse en näe mitään järkeä kaiken työntämisessä web -aplvelurajapinnan taakse.

      Noh toisaalta, City tekee rahaa (vai tekeekö ENÄÄ - on ainakin tehnyt aiemmin) ihmisten matemaattisella osaamattomuudella ja/tai laiskuudella, ks:

      https://www.city.fi/mobiili/painoindeksi/

      noh, nyt toisaalta saman cityn toisella sivulla, kerrotaan ihan ilmaiseksi, miten voit itse laskea painoindeksin:

      https://www.city.fi/ilmiot/ela ja anna toisten kuolla/1027

      • Anonyymi00018

        Esitetty toteutuskin on amatöörimäinen. Karkausvuoden tunnistaa helposti (ohjelmointikielestä riippuen) yhden rivin yhtälöllä, jossa on modulo 4 ja modulo 100.


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mies, minkä tiedon juuri nyt haluaisit

      tietää hänestä, naisesta?
      Ikävä
      129
      1354
    2. Stubbin ylimielinen uho vie Suomea sotaan!!?

      https://m.youtube.com/watch?v=aQ3c540lm9o Miten voi olla että maamme presidentii toimii näin vastuuttomasti kuten hölöt
      Maailman menoa
      458
      1053
    3. Miesten suusta kuultua

      Olen tässä samaa nyt muutaman kerran kuullut miesten suusta seuraavaa, toki hieman erilaisin sanavalinnoin kerrottuna: "
      Sinkut
      159
      637
    4. Sinkut-palstan suurin valhe

      Sinkut-palstan suurin valhe on väite siitä, että naisten olisi helpompaa pariutua kuin miesten. Niin kauan kuin sitä va
      Sinkut
      187
      564
    5. Nainen, minkä tiedon juuri nyt haluaisit

      tietää hänestä, miehestä?
      Ikävä
      43
      559
    6. Martina Aitolehti täräyttää suorat sanat Immu Fight Nightista: "Menen tietysti voittamaan"

      Martina Aitolehti on ehtivä. Nyt hän on mukana Immu Fight Nightissa - ja kehässä vastaan tulee Nanna Karalahti. Miten l
      Kotimaiset julkkisjuorut
      68
      538
    7. Nainen mitä jos kaivattusi olisi biseksuaali

      Loppuisiko kiinnostus
      Ikävä
      71
      533
    8. Mitä vikoja

      kaivatussasi on?
      Ikävä
      39
      519
    9. Miten usein

      Vielä siellä muistelet meitä tai minua?
      Ikävä
      40
      517
    10. Haluaisin mies tietää pari juttua

      Haluisin mies laittaa sulle viestiä ja kysyä paria asiaa sulta. Mun piti kysyä ne tässä joitakin päiviä sitten irl, mutt
      Ikävä
      20
      506
    Aihe