{"id":125668,"date":"2022-06-13T18:31:44","date_gmt":"2022-06-13T18:31:44","guid":{"rendered":"https:\/\/blog.finxter.com\/?p=420533"},"modified":"2022-06-13T18:31:44","modified_gmt":"2022-06-13T18:31:44","slug":"ten-easy-steps-to-your-first-python-flask-app","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2022\/06\/13\/ten-easy-steps-to-your-first-python-flask-app\/","title":{"rendered":"Ten Easy Steps to Your First Python Flask App"},"content":{"rendered":"<div class=\"kk-star-ratings kksr-valign-top kksr-align-left \" data-payload=\"{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;420533&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;top&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;count&quot;:&quot;0&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;Rate this post&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;}\">\n<div class=\"kksr-stars\">\n<div class=\"kksr-stars-inactive\">\n<div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n<div class=\"kksr-star\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<div class=\"kksr-star\" style=\"padding-right: 5px\">\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<div class=\"kksr-legend\"> <span class=\"kksr-muted\">Rate this post<\/span> <\/div>\n<\/div>\n<h2>Project Description<\/h2>\n<p><strong>Story<\/strong>: Assume you work in the IT Department of Right-On Realtors. <\/p>\n<p>Your boss asks you to create a simple website the Realtors can query to view current Home Sales.<\/p>\n<p>He would like this website created using the\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/flask-plugins.readthedocs.io\/en\/master\/\" target=\"_blank\">Flask<\/a>\u00a0framework in Python.<\/p>\n<p>In this article, we&#8217;ll create a simple website app to query real estate stats from a CSV on the server that looks like this:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"383\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-113.png\" alt=\"\" class=\"wp-image-420560\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-113.png 768w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-113-300x150.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n<h2>What is Flask?<\/h2>\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/flask-plugins.readthedocs.io\/en\/master\/\" target=\"_blank\">Flask<\/a> is a web app framework created with ease of use in mind. Without much training, you can easily create a simple web application. <a rel=\"noreferrer noopener\" href=\"https:\/\/flask-plugins.readthedocs.io\/en\/master\/\" target=\"_blank\">Flask<\/a> works with <a rel=\"noreferrer noopener\" href=\"https:\/\/getbootstrap.com\/\" target=\"_blank\">Bootstrap<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/www.w3schools.com\/html\/\" target=\"_blank\">HTML<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/www.w3schools.com\/css\/default.asp\" target=\"_blank\">CSS<\/a>, and <a rel=\"noreferrer noopener\" href=\"https:\/\/jinja.palletsprojects.com\/en\/3.0.x\/\" target=\"_blank\">Jinja <\/a>(to name a few) to create a website.<\/p>\n<h2>Step 1: Set Up a Virtual Environment<\/h2>\n<p>All your projects share the same globally installed libraries. But some of them may require different versions or incompatible libraries. <\/p>\n<p>This is where virtual environments come into play.&nbsp;<\/p>\n<p><strong>A virtual environment serves as a \u201csandbox\u201d for your Python program.&nbsp;<\/strong>You can install any external library or version there without having any global impact. <\/p>\n<p>The&nbsp;<strong>virtual environments are isolated, independent, and separate.<\/strong><\/p>\n<p class=\"has-base-background-color has-background\">Click <a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/python-virtual-environments-with-venv-a-step-by-step-guide\/\" target=\"_blank\">here<\/a> for instructions on setting up and activating a virtual environment.<\/p>\n<h2>Step 2: Install Libraries<\/h2>\n<p>Before our code executes successfully, two (2) new libraries will require installation.<\/p>\n<ul>\n<li>The <a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/pandas-quickstart\/\" target=\"_blank\"><em>Pandas<\/em><\/a> library enables access to\/from a <em>DataFrame<\/em>.<\/li>\n<li>The <em><a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/pandas-quickstart\/\" target=\"_blank\"><\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/flask-plugins.readthedocs.io\/en\/master\/\" target=\"_blank\">Flask<\/a> <\/em>library allows us to create and render our website.<\/li>\n<\/ul>\n<p>To install these libraries, navigate to an <a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/best-python-ide\/\" target=\"_blank\">IDE<\/a> terminal. At the command prompt (<code>$<\/code>), execute the code below. For the terminal used in this example, the command prompt is a dollar sign (<code>$<\/code>). Your terminal prompt may be different.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ pip install pandas<\/pre>\n<p>Hit the <code>&lt;Enter&gt;<\/code> key on the keyboard to start the installation process.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ pip install flask<\/pre>\n<p>Hit the <code>&lt;Enter&gt;<\/code> key on the keyboard to start the installation process.<\/p>\n<h2>Step 3: Set up the Folder Structure<\/h2>\n<p>We want to have the following folder structure.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"359\" height=\"185\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-108.png\" alt=\"\" class=\"wp-image-420535\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-108.png 359w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-108-300x155.png 300w\" sizes=\"auto, (max-width: 359px) 100vw, 359px\" \/><\/figure>\n<\/div>\n<p>Then set up the <code>app.py<\/code> file that is responsible for most of the Flask action and create a basic template file from which all of the HTML files served by your app will inherit.<\/p>\n<p>Follow our in-depth guide on how to set this up here:<\/p>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-1\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-1\/\" target=\"_blank\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<\/p>\n<h2>Step 4: Routes and Dynamic Content<\/h2>\n<p>First, add routes to your web project, so people can navigate to different parts of your website. You can do this by replacing the <code>app.py<\/code> file with the following code:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">app = Flask(__name__) @app.route('\/') # home\ndef index(): return render_template(\"index.html\") @app.route('\/reports') # reports\ndef reports(): return render_template(\"reports.html\") @app.route('\/contact') # contact\ndef contact(): return render_template(\"contact.html\")<\/pre>\n<p>Second, you create blank HTML files that inherit from the base template and that should be returned after calling each of those URLs <code>'https:\/\/yourwebsite.com\/'<\/code>, <code>'https:\/\/yourwebsite.com\/reports'<\/code>, and <code>'https:\/\/yourwebsite.com\/contact'<\/code>.<\/p>\n<p>Third, add <a rel=\"noreferrer noopener\" href=\"https:\/\/jinja.palletsprojects.com\/en\/3.0.x\/\" target=\"_blank\">Jinja<\/a> to the base template file so that you can add some dynamically created content to your website&#8212;it shouldn&#8217;t return the same content for all users after all!<\/p>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-2\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Step 5: Styling, Navigation, and Running the App Locally<\/h2>\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/getbootstrap.com\/\" target=\"_blank\">Bootstrap<\/a> is a popular framework that contains numerous HTML, API, and JS code snippets. These snippets assist web designers\/developers everywhere create a responsive website.<\/p>\n<p>Add Bootstrap to your project and create a navigation bar using the provided styling options.<\/p>\n<p>Next, you can run your app with a simple command in your shell and view it in your browser:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-110.png\" alt=\"\" class=\"wp-image-420551\" width=\"665\" height=\"64\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-110.png 665w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-110-300x29.png 300w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/figure>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"737\" height=\"159\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-109.png\" alt=\"\" class=\"wp-image-420549\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-109.png 737w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-109-300x65.png 300w\" sizes=\"auto, (max-width: 737px) 100vw, 737px\" \/><\/figure>\n<\/div>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-3\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-3\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Step 6: Forms for User Input and Output<\/h2>\n<p>Add a Form with elements to an HTML page. Then add <a rel=\"noreferrer noopener\" href=\"https:\/\/jinja.palletsprojects.com\/en\/3.0.x\/\" target=\"_blank\">Jinja<\/a> to the Reports page and update the code in app.py to get the HTML Form working.<\/p>\n<p>Your project will look like this at this point:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"768\" height=\"176\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-111.png\" alt=\"\" class=\"wp-image-420555\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-111.png 768w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-111-300x69.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n<p>Congratulations, users can now input numbers into the front-end and your Python code will process them on the back-end! <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"498\" height=\"498\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/DancingUnicornChubbicornGIF.gif\" alt=\"\" class=\"wp-image-420556\"\/><\/figure>\n<\/div>\n<p>To view any changes, Flask needs to be re-started. To perform this task, navigate to the command prompt and enter CTRL+C (stop), then flask run (re-start).<\/p>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-4\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-4\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Step 7: Data Processing at the Back-End<\/h2>\n<p>Next, read in the <strong><em>Real Estate CSV<\/em><\/strong> file to a DataFrame and allow users to query the results based on the entered Zip code and display the results on the Reports page.<\/p>\n<p>It&#8217;ll look like so:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"768\" height=\"511\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-112.png\" alt=\"\" class=\"wp-image-420558\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-112.png 768w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-112-300x200.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-5\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-5\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Step 8: Data Cleaning<\/h2>\n<p>In this step, you write some Python code to validate the Zip Code to make sure the user input is correct. You&#8217;ll clean up the data and reformat the sales price of the real estate objects for clarity of presentation.<\/p>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-6\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-6\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Step 9: Stylesheets<\/h2>\n<p>Next, we&#8217;ll add a stylesheet, and add some specific styles to the navigation bar and the remaining HTML pages. Styling should come after the core functionality is implemented&#8212;which at this point is done! <img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f642.png\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/p>\n<p>After this step, the website will look much cleaner and prettier:<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"383\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-113.png\" alt=\"\" class=\"wp-image-420560\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-113.png 768w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-113-300x150.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/p>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-7\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-7\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Step 10: Contact Us and Email Automation<\/h2>\n<p>The last step makes sure that users can contact you via the contact page. We&#8217;ll style it too using CSS and stylesheets and email the form values to you using the Flask functionality. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"615\" height=\"631\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-114.png\" alt=\"\" class=\"wp-image-420562\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-114.png 615w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-114-292x300.png 292w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/figure>\n<\/div>\n<p class=\"has-base-background-color has-background\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/1f30d.png\" alt=\"\ud83c\udf0d\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <strong><a href=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-8\/\" data-type=\"URL\" data-id=\"https:\/\/blog.finxter.com\/build-website-with-flask-part-8\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial<\/a><\/strong>: Learn more about how to accomplish this step.<\/p>\n<h2>Summary<\/h2>\n<p>This post has summarized the steps necessary to create a simple real estate related website with Flask. If you have followed the outlined steps and read the tutorials linked after each step, you should now have a running prototype website on your local computer.<\/p>\n<p>You should also know the basics of how to create a dynamic and interactive website in Python, a skill that is sought-after by many companies today as a freelance or employed <a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/full-stack-web-developer-income-and-opportunity\/\" data-type=\"post\" data-id=\"326336\" target=\"_blank\">full-stack web developer<\/a>!<\/p>\n<p><strong>Tutorials You Should Check Out Next<\/strong><\/p>\n<ul>\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/web-developer-income-and-opportunity\/\" data-type=\"post\" data-id=\"314633\" target=\"_blank\">Web Developer &#8211; Income and Opportunity<\/a><\/li>\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/blog.finxter.com\/flask-developer-income-and-opportunity\/\" data-type=\"post\" data-id=\"251723\" target=\"_blank\">Flask Developer &#8211; Income and Opportunity<\/a><\/li>\n<li><a href=\"https:\/\/blog.finxter.com\/python-developer-income-and-opportunity\/\" data-type=\"post\" data-id=\"189354\">Python Developer &#8211; Income and Opportunity<\/a><\/li>\n<\/ul>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2>Nerd Humor<\/h2>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"733\" height=\"913\" src=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-72.png\" alt=\"\" class=\"wp-image-410345\" srcset=\"https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-72.png 733w, https:\/\/blog.finxter.com\/wp-content\/uploads\/2022\/06\/image-72-241x300.png 241w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><figcaption><em>Oh yeah, I didn&#8217;t even know they renamed it the Willis Tower in 2009, because I know a normal amount about skyscrapers.<\/em> &#8212; <a rel=\"noreferrer noopener\" href=\"https:\/\/imgs.xkcd.com\/comics\/or_whatever_2x.png\" data-type=\"URL\" data-id=\"https:\/\/imgs.xkcd.com\/comics\/or_whatever_2x.png\" target=\"_blank\">xkcd<\/a> (source)<\/figcaption><\/figure>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Rate this post Project Description Story: Assume you work in the IT Department of Right-On Realtors. Your boss asks you to create a simple website the Realtors can query to view current Home Sales. He would like this website created using the\u00a0Flask\u00a0framework in Python. In this article, we&#8217;ll create a simple website app to query [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[857],"tags":[73,468,528],"class_list":["post-125668","post","type-post","status-publish","format-standard","hentry","category-python-tut","tag-programming","tag-python","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/125668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=125668"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/125668\/revisions"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=125668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=125668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=125668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}