You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
3.8 KiB
155 lines
3.8 KiB
###  Python Programming
|
|
|
|
<!---
|
|
This assignment was developed by Kevin
|
|
|
|
Questions? Comments?
|
|
1. Log an issue to this repo to alert me of a problem.
|
|
2. Suggest an edit yourself by forking this repo, making edits, and submitting a pull request with your changes back to our master branch.
|
|
3. Hit me up on Slack at @kevin.coyle.
|
|
--->
|
|
|
|
|
|
# Flask: Templates Practice Problems
|
|
|
|
In this homework, you're going to write code for a few problems.
|
|
|
|
You will practice these programming concepts we've covered in class:
|
|
* Variables
|
|
* Routing
|
|
* Templates
|
|
|
|
------------
|
|
|
|
## Deliverables
|
|
|
|
For each of the challenges listed below, you will create a new `.py` file and write code to solve the problem. For example, you would create `problem1.py` with your solution code to the first problem. Run the file from the command line to check your work.
|
|
|
|
*Reminder: On your laptop, you can run the file from your command line with the following:*
|
|
|
|
```
|
|
python problem1.py
|
|
```
|
|
|
|
> **Hint**: After finish writing your code, launch your server, go into your browser, and be sure that your Flask app is outputting the intended data.
|
|
|
|
|
|
## Requirements:
|
|
|
|
* By the end of this, you should have four different `.py` files (one each for the problems).
|
|
|
|
---
|
|
|
|
## Problem 1: "Good Artists Copy"
|
|
|
|
### Skill You're Practicing: Using templates to render Python.`
|
|
|
|
Make an `html` file like the one from our lesson on templates.
|
|
|
|
Modify the content of the `html` file.
|
|
|
|
Create a Flask app that renders this template. Include a variable that you pass into the template.
|
|
|
|
#### Example Test Code
|
|
```
|
|
render_template('index.html', name=user)
|
|
```
|
|
|
|
#### Example Test Output
|
|
```
|
|
"Hi there Akilah. It's great to see you today!"
|
|
```
|
|
|
|
**Hint 1:**
|
|
|
|
Remember: Templates for variables use the double brackets `{{}}`.
|
|
|
|
**Hint 2:**
|
|
|
|
Our module to use is `render_template`.
|
|
|
|
---
|
|
|
|
|
|
## Problem 2: "Routing"
|
|
|
|
### Skill You're Practicing: Creating routes with Flask.
|
|
|
|
Make a copy of one of the three Python files from Problem 1. We're going to modify it.
|
|
|
|
Create a route whose endpoint is a variable. Pass that variable into your Flask app.
|
|
|
|
#### Example Test Code
|
|
```
|
|
http://localhost:5000/<food>
|
|
```
|
|
|
|
#### Example Test Output
|
|
```
|
|
We all know that chicken is not only good, it's good for you.
|
|
```
|
|
|
|
***Hint 1:****
|
|
|
|
Recall that we need to put an argument into our function that gets wrapped by the @app.route.
|
|
|
|
---
|
|
|
|
|
|
## Problem 3: "All of De Bugs!"
|
|
|
|
### Skill You're Practicing: Turning off debug mode.
|
|
|
|
In production, we definitely do not want people to see a traceback if our code results in an error.
|
|
|
|
In `app.run`, check for `debug` to be set to `True`. We don't want that! **If** debug is `False`, write a Flask app that prints to the screen "Ain't no bugs on me!"
|
|
|
|
#### Example Test Code
|
|
```
|
|
def hello():
|
|
return "Ain't no bugs on me!"
|
|
```
|
|
|
|
#### Example Test Output
|
|
|
|
```
|
|
"Ain't no bugs on me!"
|
|
```
|
|
|
|
**Hint 1:**
|
|
|
|
We're looking for an argument within `app.run()` that sets debug to `True`. We want to set this argument to `False`.
|
|
|
|
**Hint 2:**
|
|
|
|
By default, Flask sets this argument to `False`.
|
|
|
|
---
|
|
|
|
|
|
## Problem 4: "Variables Vary Very for Weary Vikings"
|
|
|
|
### Skill You're Practicing: Passing variables into your Flask app.
|
|
|
|
Write a Flask app that reads in a variable from another file whose value is your favorite food.
|
|
|
|
For this problem, you'll have three slightly different versions:
|
|
1. The first version will use a variable in your Flask app.
|
|
2. The second version will read a variable in from a Python file.
|
|
3. The third version will read a variable in from a `.txt` file.
|
|
|
|
#### Example Test Code
|
|
```
|
|
favorite_food = Chicken
|
|
favorite_dish = BBQ Chicken Pizza
|
|
```
|
|
|
|
#### Example Test Output
|
|
```
|
|
"My favorite food is chicken on top of my favorite dish, BBQ Chicken Pizza"
|
|
```
|
|
|
|
**Hint 1:**
|
|
|
|
Refer to your class notes from the Variables lesson for how to read in a variable in each approach/style.
|