Upload file and read its content in cherrypy python

05 Sep, 2020
CherryPy is a web framework of Python which provides a friendly interface to the HTTP protocol for Python developers. It is also called a web application library. It allows developers to build web applications in much the same way they would build any other object-oriented Python program. This results in smaller source code developed in less time.
This framework is mainly for the developers who want to create a portable database-driven web applications using Python, as it provides Create, Retrieve, Update and Delete functionalities.
Prerequisites –
The basic requirements for installation of CherryPy framework include ?
Python with version 2.4 or above
CherryPy 3.0
Installation –To install cherrypy run the following command in terminal:
pip install cherrypy
A simple Application –
A cherrypy Application typically looks like this:
import cherrypy
class HelloWorld(object):@cherrypy.exposedef index(self):return “Hello World!”
cherrypy.quickstart(HelloWorld())
Project to Upload file and read its content –
Steps taken to upload a file and read its content using cherrypy:
Create any text file to read or existing file can also be used. Geeks.txt file is used in the program.Create user interface that upload a file from systemWrite cherrypy program that read the content of file and show its content.
Create any text file to read or existing file can also be used. Geeks.txt file is used in the program.
Create user interface that upload a file from system
Write cherrypy program that read the content of file and show its content.
<html><head>  <style>    .container{      height: 300px;      width: 600px;      background-color: maroon;      margin-top: 12%;      margin-left: 25%;      color: white;    }    .container h2{      font-size: 40px;      text-align: center;              }    .off{      font-size: 25px;      margin-left: 23%;      color: yellow;      background-color: ;    }    .on{      font-size: 25px;      border-top-right-radius: 25px;      border-top-left-radius: 25px;      border-bottom-left-radius: 25px;      border-bottom-right-radius: 25px;      margin-top: 20px;   }  </style>  </head><body>    <div class="container">      <h2><u><i>Upload a file</i></u></h2>    <form action="store" id="form" method="GET">    <input class="off" type="file" name="myFile" /><br />          <input style="margin-left: 250px;" class="on" id=" submit" type="submit" /></div>  </div>        </form>  </div>              </body></html>
Read file:
# import filesimport randomimport stringimport cherrypy  # function to read file contentdef readf(filename):    file = open(filename)    read = file.read()    return read  class Root(object):         @cherrypy.expose    def index(self):        return """<html><head>  <style>    .container{      height: 300px;      width: 600px;      background-color: maroon;      margin-top: 12 %;      margin-left: 25 %;      color: white;    }    .container h2{      font-size: 40px;      text-align: center;              }    .off{      font-size: 25px;      margin-left: 23 %;      color: yellow;      background-color: ;    }    .on{      font-size: 25px;      border-top-right-radius: 25px;      border-top-left-radius: 25px;      border-bottom-left-radius: 25px;      border-bottom-right-radius: 25px;      margin-top: 20px;   }      p{ margin-top:100px;      font-size: 50px;      color: green}  </style>  </head><body> <center><p> GEEKSFORGEEKS</p></center>  <div class ="container">      <h2><u><i>Upload a file</i></u></h2>         <form action ="store" id ="form" method ="GET">    <input class ="off" type ="file" name ="myFile" /><br />                   <input style ="margin-left: 250px;" class ="on" id =" submit" type ="submit" /></div>  </div>        </form>  </div>              </body></html>"""               @cherrypy.expose    def store(self, myFile):               f = readf(myFile)                # read the uploaded file           return f       if __name__=="__main__":    # set port address to 8089    cherrypy.config.update({'server.socket_port': 8089})       cherrypy.quickstart(Root())
To stop the engine, use the following code:
cherrypy.engine.exit()
Output(Before file upload):Output(After uploading the file):After submission:
HTML-DOM
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.