22
Sun, Dec
3 New Articles

Python and Db2

Programming - Other
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Python is a high-level, general purpose, scripting language that can be used for a wide variety of programming tasks.

Editor's Note: This article is excerpted from chapter 4 of QuickStart Guide to Db2 Development with Python, by Roger Sanders.

Named after the British comedy television show Monty Python’s Flying Circus, Python was created by Guido Van Rossum at the National Research Institute for Mathematics and Computer Science in 1989. (The first Python interpreter was developed as a hobby; the second was made generally available on October 16, 2000.) Since then, its following has steadily grown, and according to the March 2019 TIOBE Programming Community Index, it is the third most popular programming language in use today.

Python and Db2 - Note 1

Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68, SmallTalk, and UNIX shells like ksh and bash. Consequently, it offers a variety of basic data types: numbers (floating point, complex, and unlimited-length long integers); strings (ASCII and Unicode); lists; tuples; and dictionaries. It also provides a number of built- in functions, as well as several constructs (for example, a loop construct that can iterate over items in a collection is available). In addition, Python comes with a broad standard library that consists of hundreds of modules that can be used to perform many common programming operations, such as connecting to a Web server, searching text using regular expressions, and reading or modifying files.

Other features that Python provides include:

  • Support for functional and structured programming methods as well as object-oriented programming (i.e., classes, objects, and inheritance)
  • Automatic memory management (i.e., “garbage collection”)
  • Support for raising and catching exceptions (which makes error handling cleaner)
  • Strong, dynamic data types and data type checking. (The mixing of incompatible data types—for example, trying to add a string and a number—will cause an exception to be raised.)
  • Ability to group chunks of code into separate modules and packages

Because Python is an interpreted language, it is processed at runtime by a Python interpreter. From a coder perspective, applications written in Python do not have to be compiled before they can be executed. However, it’s important to note that Python programs are automatically compiled into bytecode before execution, and in most cases, this bytecode is saved to disk so that compilation only needs to happen again if the program’s source code is altered. The Python interpreter itself can be run in interactive mode, making it easy to test short code snippets, build prototypes, and perform other types of ad hoc programming. In addition, users can add their own low level-modules to the Python interpreter, if desired.

So, why is Python so popular? For one thing, it’s open source. This means that anyone can download it for free (from www.python.org) and use it to develop applications. This also means that the source code for the Python interpreter can be accessed and modified as desired. Furthermore, this can be done on a wide variety of platforms: Python can be used on Microsoft Windows, macOS, and most Linux distributions. As a result, applications written on one platform can easily be executed on another.

Another thing that makes the language appealing is that Python code is easy to read, which makes it easy to learn and maintain. Python has a relatively simple structure, and its syntax is clearly defined; it uses English keywords where other languages rely on punctuation, so there are no curly braces to balance or semicolons to forget. (Some programming languages require lines to be terminated with semicolons.) Instead, indentation is used to mark where code blocks begin and end. Python also uses libraries to provide functionality, which helps keep the core language simple and lightweight. Developers only need to add a basic set of libraries to their code to get the functionality they desire.

Finally, Python is flexible. It can be used with functional, object-oriented, and imperative coding styles, making it useful to different types of programmers. And, it can be used to build a wide variety of applications: it can be used solely as a scripting language, it can be embedded, or it can be compiled and integrated with C, C++, COM, ActiveX, CORBA, and/or Java. Coders trying to choose the best programming tool for the job find that Python is flexible enough to be considered in many situations.

Installing the Python Interpreter

To program in Python, you need the Python interpreter. And, if you are using Linux, there’s a good chance the interpreter is already installed. However, if you are using a different operating system, you may have to install it yourself.

To determine whether the Python interpreter is already installed on a Linux workstation, open a terminal window and type the following command:

python --version

If you see something like Python 2.7.5, the Python interpreter is installed on your system, and Python 2.7 is the default version used. If that is the case, you should also check to see if Python 3.x is installed. You can do this by executing the following command instead:

python3 --version

If you see something like Python 3.4 (or earlier), an older version of the 3.x interpreter is installed and you should probably upgrade to the latest version.

Python and Db2 - Note 2

If the Python interpreter cannot be found on your system, you can install it by going to https://www.python.org/downloads/ and following the directions provided for the platform you are using. (If you download and install the ready-made Python interpreter for your platform, it’s a good idea to download the source code as well. This will allow you to browse the standard library and take advantage of the collection of demos and tools that come with the code. There’s a lot you can learn from the source!)

IBM Db2 Support for Python

Several resources are available to help developers build Python applications that interact with IBM Db2 servers and databases:

  • The ibm_db driver/library: This Python driver uses the IBM Data Server Driver for ODBC/CLI driver to connect to and interact with IBM Db2 and Informix servers and databases. APIs in this library can be used to perform advanced operations that cannot be done with the other Python drivers available.
  • The ibm_db_dbi driver/library: This Python driver provides functionality that conforms to the PEP 249 — Python Database API Specification v2. 0. Consequently, it does not offer some of the more advanced features that are available with the ibm_db driver.

   However, if you have an application that uses this driver, you can easily switch to the ibm_db driver since both the ibm_db and the ibm_db_dbi drivers are packaged together. (You can learn more
   about the PEP 249 specification at https://www.python.org/dev/peps/pep-0249/.)

  • The ibm_db_sa adapter: This adapter supports SQLAlchemy, which is a popular open source Python SQL toolkit and object-to-relational mapper (ORM). (Only SQLAlchemy 0.7.3 and later are )
  • The ibm_db_django adapter: This adapter provides access to IBM Db2 and Informix servers and databases from Django. Django is a popular Web framework that can be used to build high-performing, elegant Web applications quickly.

Figure 4.1 illustrates how APIs in each of these resources can be used to interact with IBM Db2 and Informix servers and databases. In Chapter 5, “Building a Python-Db2 Development Environment,” we’ll see how to install the ibm_db and ibm_db_dbi drivers/libraries; in Chapter 6, “Building Db2 Applications with Python,” we’ll see how they are used.

 

Figure1: IBM Db2 support for Python

 

 

 Python and Db2 - Figure 1

 

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: