Flask, Python, ORDS, and Oracle CloudWorld 2022

Python, Flask, and ORDS

Restaurants Web Application update

If you’ve been following along, then you are probably aware of the python/flask/ORDS journey that I’ve embarked on. If not, you can read up on the overview here. The idea was to take local restaurant health inspection scores (aka Sanitary grades) and present the data to a user in a visualization. The web framework I’m using is based on Flask, a popular Python web application framework. And we’ll interact with our Oracle Autonomous Database using our Oracle REST Data Services APIs (for both GET and POST requests).

That progress is moving along, and I’ve been toying with the Folium library for map visualizations.

If you are familiar with Leaflet.js then you basically know Folium – a python wrapper used for displaying map renderings from Leaflet. You can get a taste of what I’m working towards in this latest post.

However, this project is on hold (very, very) temporarily while I become familiar with another Python / Flask / ORDS web application.

eCommerce/Retail Web Application [NEW]

Currently titled “Frank’s Franks”, this application is what I’m referring to as an eCommerce type application. You are presented with product information, you then make a product selection, and create an order. There is no credit card gateway, but the application does actually POST order information to a live Autonomous Database.

This application is the brainchild of our very own Brian Spendolini. But I’m taking a crack at making some additions to it with what I’ve learned from Folium and Bootstrap (HTML and CSS). I’m not sure of the exact final state, but you can follow along as we continue iterating on it (more on this in the GitHub section).

And here is a very crude example of the index (aka “home”) page:

And here is a nice screenshot of the python code along with some in-progress HTML:

Our Flask application is on the left, with the two additional right panes showing the base.html and index.html pages.

I’m showing this because this will be one of the practical labs that our team will be facilitating in October. Why October you ask? Great question…

Oracle CloudWorld

Because that is when Oracle CloudWorld is happening. Queue gratituous copy/paste in 3…2…1…

Join us at CloudWorld, the new global conference where our customers and partners can share ideas, develop in-demand skills, and learn about cloud infrastructure and applications solutions that serve their unique roles and business needs. At CloudWorld, you’ll experience first-look product demos by Oracle experts, access hands-on training and certification opportunities, and shape the cloud innovation conversation alongside your peers and industry leaders.

Now I’m not sure who on the team will be attending, but rest assured, one of us will be there.

GitHub

Finally, GitHub. Why am I including an ominous “GitHub” section? For two reasons. First, if you want to follow along with the progress of this CloudWorld lab, I encourage you to peruse my repo, which can be found here.

Second, I’ve started to build out a python-themed library that will document code snippets and frequent code patterns when working with popular libraries + ORDS. The obvious ones are things like “requests” and “pandas”. And a lot of it is things that I have encountered personally. But I’m discovering there is so much more out there for python folks, so hopefully, this will continue to expand.

If you do visit the “library” you’ll see that I have created some ORDS endpoints based on historical U.S. home sale data. You can check it out here.

Current state:

GitHub repo of python ORDS library code patterns, code snippets, Chris Hoina, Database Tools, Oracle Autonomous Database
Those endpoints are actually enabled, so you can work with them without having to authenticate. Now of course you could totally mess things up and POST or delete whatever...but lets try to avoid that. 

But wait, there’s more

You have both an invitation and a request.

An invitation to follow along with both the lab progress and the python library project.

And a request to

  • submit ideas and possible areas of improvement (or cool code patterns) for this CloudWorld application,
  • and submit any requests you might have for the python library that I’ve started to build-out

This is all voluntary of course, but if you think any of this might benefit please do engage and share!

Finally, I’ll be back to regularly-scheduled technical posts soon. In the meantime…

Keep following

Leave a Comment