Creating a simple webpage with Python, where template content is populated from a database (or a pandas...












1














I use python mainly for data analysis, so I'm pretty used to pandas. But apart from basic HTML, I've little experience with web development.



For work I want to make a very simple webpage that, based on the address/query, populates a template page with info from an SQL database (even if it has to be in a dataframe or CSV first that's fine for now). I've done searches but I just don't know the keywords to ask (hence sorry if this a duplicate or the title isn't as clear as it could be).



What I'm imagining (most simple example, excuse my lack of knowledge here!). Example dataframe:



import pandas as pd
df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
Out[1]:
Header Body
1 a b
2 c d
3 e f


User puts in page, referencing the index 2:



"example.com/database.html?id=2" # Or whatever the syntax is.


Output-page: (Since id=2, takes data row data from index = 2, so "c" and "d")



<html><body>
Header<br>
c<p>
Body<br>
d<p>
</body></html>


It should be pretty simple right? But where do I start? Which Python library? I hear about Django and Flask, but are they overkill for this? Is there an example I could follow? And lastly, how does the syntax work for the webpage address?



Cheers!



PS: I realise I should probably just query the SQL database directly and cut out the pandas middle-man, just I'm more familiar with pandas hence the example above.



Edit: I a word.










share|improve this question
























  • flask is much easier to do very simple things ... especially if you dont need user authentication or any of the bells and whistles django provides ... alot of times a project starts small with flask ... but before long you are implementing most of django
    – Joran Beasley
    Nov 21 '18 at 0:05












  • Using Jupyter isn't good enough for your needs?
    – Arthur Julião
    Nov 21 '18 at 1:04
















1














I use python mainly for data analysis, so I'm pretty used to pandas. But apart from basic HTML, I've little experience with web development.



For work I want to make a very simple webpage that, based on the address/query, populates a template page with info from an SQL database (even if it has to be in a dataframe or CSV first that's fine for now). I've done searches but I just don't know the keywords to ask (hence sorry if this a duplicate or the title isn't as clear as it could be).



What I'm imagining (most simple example, excuse my lack of knowledge here!). Example dataframe:



import pandas as pd
df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
Out[1]:
Header Body
1 a b
2 c d
3 e f


User puts in page, referencing the index 2:



"example.com/database.html?id=2" # Or whatever the syntax is.


Output-page: (Since id=2, takes data row data from index = 2, so "c" and "d")



<html><body>
Header<br>
c<p>
Body<br>
d<p>
</body></html>


It should be pretty simple right? But where do I start? Which Python library? I hear about Django and Flask, but are they overkill for this? Is there an example I could follow? And lastly, how does the syntax work for the webpage address?



Cheers!



PS: I realise I should probably just query the SQL database directly and cut out the pandas middle-man, just I'm more familiar with pandas hence the example above.



Edit: I a word.










share|improve this question
























  • flask is much easier to do very simple things ... especially if you dont need user authentication or any of the bells and whistles django provides ... alot of times a project starts small with flask ... but before long you are implementing most of django
    – Joran Beasley
    Nov 21 '18 at 0:05












  • Using Jupyter isn't good enough for your needs?
    – Arthur Julião
    Nov 21 '18 at 1:04














1












1








1







I use python mainly for data analysis, so I'm pretty used to pandas. But apart from basic HTML, I've little experience with web development.



For work I want to make a very simple webpage that, based on the address/query, populates a template page with info from an SQL database (even if it has to be in a dataframe or CSV first that's fine for now). I've done searches but I just don't know the keywords to ask (hence sorry if this a duplicate or the title isn't as clear as it could be).



What I'm imagining (most simple example, excuse my lack of knowledge here!). Example dataframe:



import pandas as pd
df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
Out[1]:
Header Body
1 a b
2 c d
3 e f


User puts in page, referencing the index 2:



"example.com/database.html?id=2" # Or whatever the syntax is.


Output-page: (Since id=2, takes data row data from index = 2, so "c" and "d")



<html><body>
Header<br>
c<p>
Body<br>
d<p>
</body></html>


It should be pretty simple right? But where do I start? Which Python library? I hear about Django and Flask, but are they overkill for this? Is there an example I could follow? And lastly, how does the syntax work for the webpage address?



Cheers!



PS: I realise I should probably just query the SQL database directly and cut out the pandas middle-man, just I'm more familiar with pandas hence the example above.



Edit: I a word.










share|improve this question















I use python mainly for data analysis, so I'm pretty used to pandas. But apart from basic HTML, I've little experience with web development.



For work I want to make a very simple webpage that, based on the address/query, populates a template page with info from an SQL database (even if it has to be in a dataframe or CSV first that's fine for now). I've done searches but I just don't know the keywords to ask (hence sorry if this a duplicate or the title isn't as clear as it could be).



What I'm imagining (most simple example, excuse my lack of knowledge here!). Example dataframe:



import pandas as pd
df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
Out[1]:
Header Body
1 a b
2 c d
3 e f


User puts in page, referencing the index 2:



"example.com/database.html?id=2" # Or whatever the syntax is.


Output-page: (Since id=2, takes data row data from index = 2, so "c" and "d")



<html><body>
Header<br>
c<p>
Body<br>
d<p>
</body></html>


It should be pretty simple right? But where do I start? Which Python library? I hear about Django and Flask, but are they overkill for this? Is there an example I could follow? And lastly, how does the syntax work for the webpage address?



Cheers!



PS: I realise I should probably just query the SQL database directly and cut out the pandas middle-man, just I'm more familiar with pandas hence the example above.



Edit: I a word.







python django pandas






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 0:07

























asked Nov 21 '18 at 0:02









Declan

506




506












  • flask is much easier to do very simple things ... especially if you dont need user authentication or any of the bells and whistles django provides ... alot of times a project starts small with flask ... but before long you are implementing most of django
    – Joran Beasley
    Nov 21 '18 at 0:05












  • Using Jupyter isn't good enough for your needs?
    – Arthur Julião
    Nov 21 '18 at 1:04


















  • flask is much easier to do very simple things ... especially if you dont need user authentication or any of the bells and whistles django provides ... alot of times a project starts small with flask ... but before long you are implementing most of django
    – Joran Beasley
    Nov 21 '18 at 0:05












  • Using Jupyter isn't good enough for your needs?
    – Arthur Julião
    Nov 21 '18 at 1:04
















flask is much easier to do very simple things ... especially if you dont need user authentication or any of the bells and whistles django provides ... alot of times a project starts small with flask ... but before long you are implementing most of django
– Joran Beasley
Nov 21 '18 at 0:05






flask is much easier to do very simple things ... especially if you dont need user authentication or any of the bells and whistles django provides ... alot of times a project starts small with flask ... but before long you are implementing most of django
– Joran Beasley
Nov 21 '18 at 0:05














Using Jupyter isn't good enough for your needs?
– Arthur Julião
Nov 21 '18 at 1:04




Using Jupyter isn't good enough for your needs?
– Arthur Julião
Nov 21 '18 at 1:04












1 Answer
1






active

oldest

votes


















0














You can start with flask, It is easy to setup and lots of good resources online,
Start with this minimal web app http://flask.pocoo.org/docs/1.0/quickstart/



Example snippet



@app.route('/database')
def database():
id = request.args.get('id') #if key doesn't exist, returns None
df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
header = df[id].get("Header")
body = df[id].get("Body")

return '''<html><body>Header<br>{}<p>Body<br>d<p></body></html>'''.format(header, body)


For more detailed webpage add a template.
Good luck






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53403439%2fcreating-a-simple-webpage-with-python-where-template-content-is-populated-from%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You can start with flask, It is easy to setup and lots of good resources online,
    Start with this minimal web app http://flask.pocoo.org/docs/1.0/quickstart/



    Example snippet



    @app.route('/database')
    def database():
    id = request.args.get('id') #if key doesn't exist, returns None
    df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
    header = df[id].get("Header")
    body = df[id].get("Body")

    return '''<html><body>Header<br>{}<p>Body<br>d<p></body></html>'''.format(header, body)


    For more detailed webpage add a template.
    Good luck






    share|improve this answer


























      0














      You can start with flask, It is easy to setup and lots of good resources online,
      Start with this minimal web app http://flask.pocoo.org/docs/1.0/quickstart/



      Example snippet



      @app.route('/database')
      def database():
      id = request.args.get('id') #if key doesn't exist, returns None
      df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
      header = df[id].get("Header")
      body = df[id].get("Body")

      return '''<html><body>Header<br>{}<p>Body<br>d<p></body></html>'''.format(header, body)


      For more detailed webpage add a template.
      Good luck






      share|improve this answer
























        0












        0








        0






        You can start with flask, It is easy to setup and lots of good resources online,
        Start with this minimal web app http://flask.pocoo.org/docs/1.0/quickstart/



        Example snippet



        @app.route('/database')
        def database():
        id = request.args.get('id') #if key doesn't exist, returns None
        df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
        header = df[id].get("Header")
        body = df[id].get("Body")

        return '''<html><body>Header<br>{}<p>Body<br>d<p></body></html>'''.format(header, body)


        For more detailed webpage add a template.
        Good luck






        share|improve this answer












        You can start with flask, It is easy to setup and lots of good resources online,
        Start with this minimal web app http://flask.pocoo.org/docs/1.0/quickstart/



        Example snippet



        @app.route('/database')
        def database():
        id = request.args.get('id') #if key doesn't exist, returns None
        df = pd.DataFrame(index=[1,2,3], columns=["Header","Body"], data=[["a","b"],["c","d"],["e","f"]])
        header = df[id].get("Header")
        body = df[id].get("Body")

        return '''<html><body>Header<br>{}<p>Body<br>d<p></body></html>'''.format(header, body)


        For more detailed webpage add a template.
        Good luck







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 21 '18 at 0:14









        tooTired

        1697




        1697






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53403439%2fcreating-a-simple-webpage-with-python-where-template-content-is-populated-from%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Costa Masnaga

            Fotorealismo

            Sidney Franklin