CHOTI
CHOTI
on
Python Programming & Development
A report submitted in partial fulfillment of the requirements for the Award of Degree of
BACHELOR OF TECHNOLOGY
in
COMPUTER SCIENCE AND ENGINEERING
By
SHAIK NATEESHA
Regd. No: 23B85A0513
CERTIFICATE
This is to certify that the “INTERNSHIP REPORT on Python Programming & Development”
submitted by SHAIK NATEESHA (Regd. No: 23B85A0513 ) is work done by him and
submitted during 2025 – 2026 academic year, in partial fulfillment of the requirements for the
award of the degree of BACHELOR OF TECHNOLOGY in COMPUTER SCIENCE AND
ENGINEERING at INNOVATE INTERN
EXTERNAL EXAMINER
CERTIFICATE FROM THE ORGANIZATION
ACKNOWLEDGEMENT
First, I would like to thank INNOVATE INTERN for giving me the opportunity to do an
internship within the organization.
I also would like all the people that worked along with me INNOVATE INTERN with
their patience and openness they created an enjoyableworking environment.
It is indeed with a great sense of pleasure and immense sense of gratitude that I acknowledge
the help of these individuals.
I would like to thank my Head of the Department Dr. A. YESU BABU for his constructive
criticism throughout my internship.
I would like to thank, Dr. S. KRISHNA RAO Internship Coordinator, Department of CSE
for their support and guidance to get and complete internship in above Said organization.
I would like to thank, Mrs. A. Saritha, nternship guide, Department of CSE for their
support and guidance to get and complete internship in above Said organization.
I am extremely great full to my department staff members and friends who helped me in
successful completion of this internship.
SHAIK NATEESHA
Regd. No 23B85A0513
ABSTRACT
This report documents my experience and learnings from an 8-week Python Programming & Development
internship at Innovate Intern. During this internship, I worked on backend development using Flask, SQL,
JWT, and foundational web technologies. I gained practical exposure to building secure, data-driven web
applications, focusing on RESTful API design, user authentication, and database integration. Through this
internship, I strengthened my skills in Python-based web development, modular coding practices, and
collaborative problem-solving. This report outlines the project’s objectives, technical implementation,
challenges encountered, and key takeaways, offering a comprehensive reflection on my growth as a Python
backend developer.
INDEX
The history of Python is both fascinating and influential in the world of programming. Guido
van Rossum began developing Python in December 1989, during his Christmas holidays, as a hobby
project to create a language that was powerful yet easy to read. The name Python was inspired by the
British comedy show “Monty Python’s Flying Circus.” The first version, Python 1.0, was released in
1991, featuring essential elements like functions, exception handling, and core data types.
• Python evolved rapidly, with Python 2.0 (released in 2000) introducing new features such as list
comprehensions and garbage collection.
• In 2008, Python 3.0 was launched as a major upgrade to improve consistency and remove
redundancies, ensuring long-term growth and modernization.
Python was designed around core principles such as simplicity, readability, flexibility, extensibility
and portability. These principles have made Python one of the most popular languages in the world,
used extensively in web development, machine learning, automation, scientific research, and software
engineering.
1
2. Python Basics
Data Types: Data type in Python are of different sizes and values that can be stored in the variable.
# Float
float_value1 = 2.0
float_value2 = 4.0
float_result = float_value1 + float_value2
print ("Float:", float_result)
# Complex
complex_value1 = 2 + 3j
complex_value2 = 4 + 5j
complex_result = complex_value1 + complex_value2
print ("Complex:", complex_result)
# Boolean
boolean_value = True
print ("Boolean:", boolean_value)
#Type Checking
2
print ("Type of float_result:", type(float_result))
Output:
Integer: 6
Float: 6.0
Complex: (6+8j)
Boolean: True
Character: A
Type of int_result: <class 'int'>
Type of float_result: <class 'float'>
Type of complex_result: <class 'complex'>
Type of boolean_value: <class 'bool'>
Type of char_value: <class 'str'>
Operators: Operator in Python is a symbol that is used to perform operations. For example: +, -,
*, / etc.
Unary Operator
Arithmetic Operator
Assignment Operator
Python compiler executes the code from top to bottom. The statements in the code are executed
according to the order in which they appear. However, Python provides statements that can be used to
control the flow of Python code. Such statements are called control flow statements.
o If statements
o Switch statements
2.Loop statements
o do while loop
o while loop
o for loop
3
o for-each loop
3.Jump statements
4
3.Object-oriented concepts in Python
i.) Class: A class in Python is a collection of objects. It is a logical structure or blueprint from which
individual objects are created. A class defines the attributes (data) and methods (behavior) common to
all its objects.
ii.) Object: Any real-world entity having state and behavior is known as an object. For example, a car,
laptop, or student can be considered an object. In Python, an object is an instance of a class, meaning it
is created from a class definition.
Each object occupies some space in memory and can interact with other objects through methods and
messages. Objects communicate without needing to know each other's internal details—only the interface
matters.
iii.) Abstraction: Hi Abstraction in Python means hiding internal implementation details and showing only
essential
features or functionality.
Abstract Class: It is a restricted class that cannot be used to create objects (to access
it, it must be inherited from another class).
Abstract Method: It can only be used in an abstract class, and it does not have a
body.
Example:
abs from abc import ABC, abstract method
iv.) Encapsulation: Encapsulation in Python is the process of wrapping data (variables) and code
(methods) together into a single unit. It helps to protect the data from being accessed or modified directly
from outside the class. In Python, we can achieve encapsulation by making variables private using a
single or double underscore (_ or __).
5
V.) Polymorphism: The word polymorphism means “many forms”. In Python, polymorphism allows
the same function or method to behave differently based on the object it is acting upon.
In simple terms, Python Polymorphism means the ability to use a common interface for different data
types or classes.
Real-life Illustration of Polymorphism in Python: A person can act as a teacher at school, a parent at
home, and a customer at a store — the same person behaves differently in different situations. This
represents polymorphism.
Vi.) Constructor: A constructor in Python is a special method used to initialize the object of a class
automatically when it is created.
6
Vii.) Inheritance: Inheritance in Python is a mechanism where one class (child class) acquires the
properties and behaviors of another class (parent class). It allows code reusability and establishes a
relationship between classes, making programs more organized and easier to maintain. Inheritance is
a key concept of Object-Oriented Programming (OOP) that promotes reusability and extensibility
7
4.Python Strings and Collections
Strings: In general, a string is a sequence of characters. In Python, a string is an object that represents
a series of characters enclosed in single quotes (' '), double quotes (" "), or the triple quotes (''' ''' / """
"""). Python provides various built-in functions and operators to handle strings efficiently since strings
are immutable in nature.
Example:
s1 = "python"
s2 = "".join(ch)
print(s1)
print(s2)
StringBuilder Equivalent:
Python does not have a StringBuilder class like Java, but similar functionality can be achieved using
lists or StringIO, which allows building strings efficiently.
Since Python strings are immutable (cannot be changed after creation), if we need to modify
strings, we can use lists or StringIO objects to work like mutable strings.
Example:
s = list("Hello")
s.append(" ")
s.extend("Python")
print("".join(s))
Arrays:
An array in Python can be represented using lists or specialized array modules. It is a structure
that holds a group of elements of the same type. When many values of the same kind need to be
processed, using a list or array ensures efficient storage and manipulation.
The entire dataset is managed as a single object with one name in memory. A Python list or
array is a sequence of elements of the same type. The type of data stored determines the array’s
behavior, often referred to as the base type.
If the elements are whole numbers (integers), the array is of type int. If the sequence contains
characters, it is treated as a list of str or a string. If the array holds floating-point numbers, the
8
type is float. Python arrays can store objects of a class, but mixing different data types in a single
array is discouraged for consistency and performance.
Syntax:
array_name = [];
Declaration of an array:
array_name = [];
Examples:
numbers = [] # an array of whole numbers
(integers) name = [] # an array of characters
(strings in Python) price_list = [] # an array of
floating-point numbers
Initialization of array:
Arrays (lists) can be initialized using square brackets with comma-separated values. For
example, the array pencils can be initialized as:
pencils = [4, 6, 8, 3];
Example:
# Create an array
age = [12, 4, 5, 2, 5]
# Access each array element
print ("Accessing Elements of Array:")
print ("First Element:", age [0])
print ("Second Element:", age [1])
Print ("Third Element:", age [2])
print ("Fourth Element:", age [3])
print ("Fifth Element:", age [4])
9
5. Exception Handling and Concurrency
Exception Handling: Exception Handling is a mechanism in Python used to handle runtime errors
such as FileNotFoundError, IOError, ValueError, ZeroDivisionError, etc. The main purpose of exception
handling is to maintain the normal flow of the program even when unexpected situations occur. When an
error occurs, Python generates an exception, which may disrupt the normal execution of the program. By
handling exceptions properly, we can prevent program crashes and ensure smooth execution.
2. User-defined Exceptions: Python also allows developers to create their own exceptions by
defining a new class derived from the built-in Exception class. These custom exceptions are useful
for handling application-specific errors.
Python provides five keywords that are used to handle the exception: Try
Example:
try:
num = int (input ("Enter a number: "))
result = 10 / num
print ("Result:", result)
except ZeroDivisionError:
print ("Error: Cannot divide by zero!")
except ValueError:
print ("Error: Invalid input! Please enter a number.")
finally:
print ("Program execution completed.")
Output:
Enter a number: 2
Result: 5.0
Program execution completed.
10
Multi-Threading:
Multi-threading: Multi-threading in Python is a technique of running multiple threads
concurrently.
A thread is the smallest unit of execution within a process. Both multiprocessing and multithreading are used to perform
multitasking. However, multithreading is often preferred when tasks share data, as threads operate in the same memory space.
This reduces memory usage and makes context switching faster than between processes. Commonly used in tasks like I/O
operations, GUI apps, and network servers.
It doesn’t block the user since threads run independently, allowing multiple tasks to execute together.
You can perform many operations together, so it saves time.
Threads are isolated, so if one thread fails with an exception, others continue unaffected.
A thread in Python also follows a life cycle. First, a thread is created, then started, executes
its assigned task concurrently, and finally terminates. These stages define how a thread behaves
during its lifetime.
Example:
import threading
class MultiThread(threading.Thread):
def run(self):
print ("Running Thread Name:", threading.current_thread().name)
print ("Running Thread Priority: (Not applicable in Python)")
if __name__ == "__main__":
multiThread1 = MultiThread()
multiThread1.name = "First Thread"
multiThread2 = MultiThread()
multiThread2.name = "Second Thread"
multiThread3 = MultiThread()
multiThread3.name = "Third Thread"
multiThread1.start()
multiThread2.start()
multiThread3.start()
11
6. Database Connectivity (SQL Alchemy & SQLite/MySQL)
Python Database Connectivity (PDC): Python Database Connectivity refers to using libraries like
sqlite3, mysql.connector, or SQLAlchemy to connect Python applications with databases.
It provides a standard way for Python programs—whether desktop apps or web apps—to
interact with various database systems. Earlier, ODBC was commonly used for database access,
but Python offers simpler and more flexible libraries for executing queries and managing data.
Python database applications are platform-independent and widely used in web development.
They are easy to build and maintain, making Python a popular choice for database-driven
solutions.
The following Figure illustrates the connectivity model of JDBC.
Python’s database connectivity relies on the Python DB API and specific database drivers to interact
with databases.
The DB API is available on the client side. So, when a user wants to retrieve or store data, the Python
application uses the DB API to establish a connection with the database through a driver.
The database driver acts as the bridge between the Python DB API and the actual database, providing
the necessary protocol and instructions. Python libraries like sqlite3, psycopg2, or mysql.connector
implement this API for different databases.
Using Python DB API, we can connect to various database systems, both relational and non-relational,
with ease and flexibility.
I can also show you how to write a sample Python DB connection code using sqlite3 or MySQL.
Python Database Connectivity with 5 Steps:
Create the connection object
Use the connect () method to establish a connection with the database.
Syntax:
12
conn = sqlite3.connect('example.db')
Create the cursor object:
The cursor () method of the connection object is used to create a cursor, which executes
SQL queries.
Syntax:
cursor = conn.cursor()
Execute the Query
Use the execute () method of the cursor object to run SQL queries.
Syntax:
cursor.execute("SELECT * FROM tablename")
Close the connection
Use the close () method to terminate the connection after operations are complete.
Syntax:
conn.close()
13
7.Web development with Flask
Flask: Flask is a Python-based micro web framework used to build web applications. It is lightweight
and flexible, making it ideal for small to medium-sized projects. Flask provides essential tools and
features like routing, templates, and request handling, and can be extended with plugins for added
functionality.
A Flask application consists of Python code and HTML templates. Flask apps are easier to maintain
because they allow clear separation between logic and presentation. It also supports features like Jinja2
templating, URL building, and custom filters
Web Servers: Flask applications run on a server and generate dynamic web pages. Flask is robust and
scalable due to Python’s simplicity and power. Before Flask, CGI scripts were commonly used for
server-side programming. Flask uses WSGI (Web Server Gateway Interface) and includes components
like Flask, Request, Response, and Session.
Flask is a framework used to create web applications. It provides modules and classes with
documentation.
Flask uses decorators and routing to define views and handle requests. It extends server capabilities
and responds to incoming requests.
It can respond to any HTTP request. Flask apps are deployed on a server to serve dynamic
content to users.
14
8. Front end Technologies
HTML: HTML is anacronym which stands for Hyper Text Markup Language which is used for creating
webpages and web applications. Let's see what is meant by Hypertext Markup Language, and Webpage.
An HTML document consist of its basic building blocks which are:
Tags: An HTML tag surrounds the content and apply meaning to it. It is written
between
< and > brackets.
Attribute: An attribute in HTML provides extra information about the element, and it
is applied within the start tag. An HTML attribute contains two fields: name & value.
Syntax:
15
Hyper Text: Hyper Text simply means "Text within Text." A text has a link within it, is a hypertext.
Whenever you click on a link which brings you to a new webpage, you have clicked on a hypertext. Hyper Text is a
way to link two or more webpages (HTML documents) with eachother.
Markup language: A markup language is a computer language that is used to apply layout and formatting
conventions to a text document. Markup language makes text more interactive and dynamic. It can turn text into
images, tables, links, etc.
Web Page: A web page is a document which is commonly written in HTML and translated by a web browser. A
web page can be identified by entering an URL. A Web page can be of the static or dynamic type. With
the help of HTML only, we can create static webpages.
Hence, HTML is a markup language which is used for creating attractive web pages with the help of
styling, and which looks in a nice format on a web browser. An HTML document is made of many HTML tags and
each HTML tag contains different content.
JAVA SCRIPT (JS): JavaScript (JS) is a light-weight object-oriented programming language which is used by
several websites for scripting the webpages. It is an interpreted, full-fledged programming language that enables
dynamic interactivity on websites when applied to an HTML document.
It was introduced in the year 1995 for adding programs to the webpages in the Netscape Navigator browser.
Since then, it has been adopted by all other graphical web browser.
With JavaScript, users can build modern web applications to interact directly without reloading the page
everytime. The traditional website uses JS to provide several forms of interactivity and simplicity.
Although, JavaScript has no connectivity with Java programming language. The name was suggested and
provided in the times when Java was gaining popularity in the market. In addition to web browsers, databases such
as Couch DB and MongoDB uses Java Script as their scripting and query language.
CASCADING STYLESHEETS(CSS):
CSS stands for Cascading Style Sheets. It is a design language intended to simplify the process of
making web pages presentable. CSS determines the visual structure, layout, and aesthetics.
CSS allows you to format the design, style, font, and color of text; set margins and padding;
background colors, and border styles. It can also be used to position content on a page.
CSS is a style sheet language that is used to style HTML mark up. A full stack developer must
have a strong understanding of CSS in order to create attractive and user-friendly websites and
16
applications.
Types of CSS:
1. INLINE CSS:
Inline CSS is used to style the elements of HTML documents. It is used in HTML to style the
attributes without using the selectors. It is challenging to manage the inline function in websites
compared to other types. It is very helpful in Html in some situations.
2. Internal CSS
Internal CSS is used to design the style single page effectively. It is more time-consuming
because we can only work on one page or we need to style each web page. In internal CSS, we
style a single webpage uniquely.
Syntax:
<style>
--- required styles--
</style>
3. External CSS
External CSS is used to link all webpage with an external file. CSS, which can be created in a
text file. It is more efficient for styling an extensive webpage. It also increases the readability
of the CSS files.
Syntax:
<head>
//if the CSS file is in another folder, then
//the href must contain the path to the file
<link rel="stylesheet" href="nameOfTheSheet.css">
<head>
17
9.Backend Technologies
Flask: Flask is a lightweight and flexible Python web framework that supports both basic and
advanced web development concepts. Our Flask tutorial is designed for both beginners and
experienced developers.
The Flask tutorial covers key concepts such as routing, templates, request handling jinja2,
Blueprints, REST APIs, configuration, extensions and deployment.
Flask is a micro-framework built on top of Werkzeug and Jinja2. It offers a simple and fast way
to set up and run web applications with minimal boilerplate code.
It supports Rapid Application Development (RAD) by allowing developers to build stand-alone
web apps quickly, with full control over components and architecture.
Database Integration:
Flask supports multiple database systems through extensions. Flask-SQLAlchemy is widely used
for relational databases, offering ORM capabilities. For NoSQL databases like MongoDB, Flask-
PyMongo provides seamless integration. These tools simplify data modeling, querying, and
migrations.
There are several Flask-related extensions and tools that enhance its capabilities:
Flask-SQLAlchemy: Simplifies database access and ORM integration with relational
databases.
Flask-Migrate: Supports database migrations using Alembic.
Flask-Login: Provides user session management and authentication features.
Flask-WTF: Integrates WTForms for form handling and validation.
Flask-RESTful: Helps in building REST APIs with resource-based routing and request
parsing.
Flask-Mail: Enables email sending functionality from Flask applications.
18
STRUCTURE QUERY LANGUAGE (SQL):
SQL is a standard database language used to access and manipulate data in databases. SQL stands for
Structured Query Language.
SQL was developed by IBM Computer Scientists in the 1970s. By executing queries SQL can create,
update, delete, and retrieve data in databases like MySQL, Oracle, PostgreSQL, etc. Overall SQL is a
query language that communicates with databases.
In an SQL backend service database, data is organized in an intuitive manner, thus making
development and usability easy tasks.
Applications of SQL
In data-driven industries where managing databases is very important in regular, here are some
important SQL applications.
• To support client/server architecture, software engineers use SQL to establish the connection
between back-end and front-end.
• SQL can also be used in the 3-tier architecture of a client, an application server, and a
database.
• SQL is used as a Data Definition Language (DDL) in which we can independently create
a database, define the structure, use it, and discard it when its work is done.
QUERIES:
Retrieve data from a database using the SELECT statement. The basic query operations in a
relational system are projection, restriction, and join.
The SELECT statement implements all of these operations.
A projection is a subset of the columns in a table. A restriction (also called selection) is a subset of the
rows in a table, based on some conditions.
For example, the following SELECT statement retrieves the names and prices of all products that
cost more than $15:
SELECT name, unit_priceFROM product
WHERE unit_price > 15
This query uses both a restriction (WHERE unit_price > 15) and a projection (SELECT name,
unit_price)
A JOIN links the rows in two or more tables by comparing the values in key columns and returning rows
19
that have matching values. For example, you may want to select the item identification numbers and
product names for all items for which more than a dozen has been shipped:
SELECT sales_order_items.id, product.name
FROM product KEY JOIN sales_order_items
WHERE sales_order_items.quantity > 12
The product table and the sales_order_items table are joined together based on the foreign key
relationships between them.
SQL Functions:
SQL functions offer an efficient and versatile approach to data analysis. By leveraging these functions
within your queries, you can enhance the depth and accuracy of your insights, transforming raw data into
actionable knowledge.
SQL Views
20
10. PROJECT
Abstract:
The Secure Online Auction System is designed to provide a transparent, efficient, and secure platform for
online bidding and auctioning of goods and services. The project enables sellers to list products for
auction while allowing registered buyers to place bids in real time. Security and authentication are given
the highest priority through modern web development practices.
The primary goal of this system is to create a robust auctioning environment using Python (Flask),
SQLite/MySQL, JWT authentication, and the Cryptography library to protect sensitive user data. The
application ensures that all transactions, user data, and bidding processes are handled in a secure and
reliable manner, aligning with the OWASP Top 10 and NIST Cybersecurity Framework guidelines.
21
Implementation Details:
Modules:
• User Module: Handles registration, login, profile management, and token-based authentication.
• Seller Module: Allows sellers to create and manage their auctions (add, edit, delete listings).
• Buyer Module: Enables buyers to browse auctions, place bids, and track bidding history.
• Auction Module: Controls bidding logic, timer functions, and real-time bid comparison.
• Admin Module: Manages user roles, auction approval, and ensures system integrity.
• Security Module: Implements encryption, token validation, and access control mechanisms.
Sign In:
22
Workflow:
Conclusion:
The Secure Online Auction System offers a seamless and safe platform for conducting auctions online. It
integrates modern backend frameworks and strong security principles to ensure a fair and transparent
bidding process. By leveraging Flask, SQL Alchemy, JWT, and encryption libraries, the system minimizes
security risks and enhances user trust.
This project bridges the gap between traditional physical auctions and digital solutions, providing a secure,
scalable, and user-friendly auction experience. Developers and students can extend the system by adding
features like payment integration, real-time WebSocket updates, or mobile compatibility.
System Configuration:
Hardware Requirements:
• Processor: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
• RAM: 16 GB
• Hard Disk: 20 GB or above
• Keyboard: Standard Windows Keyboard
• Mouse: Two or Three Button Mouse Monitor: SVGA or higher resolution
23
Software Requirements:
24
11. Conclusion:
In conclusion, a Python Developer must possess a comprehensive set of technical and analytical skills to
design, develop, and maintain web-based applications. The internship on Python Programming and
Development provided valuable hands-on experience in both backend and frontend integration using Python
and Flask.
A successful Python developer should be proficient in core Python concepts, object-oriented programming,
web frameworks like Flask or Django, REST API development, and database management using SQL
Alchemy or MySQL. In addition, they should understand software security principles, encryption techniques,
and authentication methods such as JWT to safeguard data and user interactions.
Through the implementation of the Secure Online Auction System, this internship emphasized secure coding
practices, API development, and practical database connectivity — key elements for modern web application
development. Overall, the internship strengthened practical knowledge and provided insight into building
scalable, secure, and efficient software solutions using Python.
25
12. REFERENCES
Tutorials and Guides:
1. Python.org – Official Python Documentation
Platforms like Udemy, Coursera, and edX (Python Full Stack Development, Flask,
Django, and REST APIs).Code Quality:
Code Quality:
Follow PEP 8 (Python Enhancement Proposal) guidelines, conduct code reviews, and
use static analysis tools such as Pylint, Black, and Flake8 to maintain clean,
consistent, and secure codebases.
26