#1
### PYTHON
```python=
import requests
from pprint import pprint
dict = {"Ime" : "David",
"Starost" : "17",
"Zaposlen" : False,
"Siblings" : ["Matej"]}
url = "https://api.chucknorris.io/jokes/random"
call = requests.get(url)
pprint(dict["Ime"])
pprint(dict["Zaposlen"])
pprint(dict["Siblings"][0])
pprint(dict.get("Ime", -1))
```
### PYTHON
```python=
import requests
for i in range(101):
url = f"http://numbersapi.com/{i}/trivia"
print(url)
k = requests.get(url)
print(k.text)
```
### PYTHON
```python=
import requests
from flask import Flask, render_template
import random
app = Flask("app")
@app.route('/')
def index():
k = requests.get("https://zenquotes.io/api/quotes/author/babe-ruth/").json()
temp = k[0]['q']
return render_template("index.html",quote=temp)
app.run(host='0.0.0.0', port=8080, debug=True)
```
# flask
### PYTHON
```python=
import requests
from flask import Flask, render_template
app = Flask("app")
d = requests.get("https://dog.ceo/api/breeds/list/all").json()
sez = list(d["message"].keys())
print(sez)
@app.route('/')
def index():
d = requests.get("https://dog.ceo/api/breeds/list/all").json()
sez = list(d["message"].keys())
return render_template("index.html",sez=sez)
app.run(host='0.0.0.0', port=8080, debug=True)
```
### HTML
```htmlembedded=
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello Bulma!</title>
</head>
<body>
Pasme:
{%for s in sez%}
<ul><li>{{ s }}</li></ul>
{% endfor %}
</table>
</body>
</html>
```
-----------------------------------------------------------------------------------------------
### PYTHON
```python=
from flask import Flask, render_template, request
import requests
from pprint import pprint
app = Flask("app")
@app.route('/')
def index():
API_KEY = "420c89673fa140bf927be5752ab5c9c5"
APIkey = "c7244d9045470736bf3e1e55e2f57235"
x = dict(request.headers)
x = x["X-Forwarded-For"].split(",")[0]
url = f"https://api.ipgeolocation.io/ipgeo?apiKey={API_KEY}&ip={x}"
q = requests.get(url).json()
lat = q["latitude"]
lon = q["longitude"]
Ł =q["country_name"]
urlmk2 = f"https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={APIkey}"
đ = requests.get(urlmk2).json()
ł = đ["weather"][0]["main"]
ß = đ["sys"]["country"]
š = đ["weather"][0]["icon"]
pprint(đ)
return render_template("index.html",lat = lat, lon = lon,ip = x, Ł = Ł, ł=ł,ß=ß,š=š)
app.run(host='0.0.0.0', port=8080, debug=True)
```
### HTML
```htmlembedded=
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Doc</title>
<style>
body{
margin:20px;
background-color:#537d99;
}
h1{
font-family: "Times New Roman", Times, serif;
color:#d69074;
text-align:center;
}
p{
font-family: "Times New Roman", Times, serif;
color:#edc593;
font-size:1.2em;
padding:5px;
}
</style>
</head>
<body>
<h1>Deus dê</h1>
<p>IP:
{{ ip }}
</p>
<p>Lan:
{{ lat }}
</p>
<p>Lon:
{{lon}}
</p>
<p>
Country: {{ ß }}, {{ Ł }}
</p>
<p>
Weather: {{ ł }}
</p>
<img src="https://openweathermap.org/img/wn/{{ š }}.png" alt ='sljejka' height='170' width='200'>
</body>
</html>
```
# AJAX vzhod/zahod
### PYTHON
```python=
from flask import Flask, render_template, request
from flask.json import jsonify
import requests
import pprint
app = Flask('app')
@app.route('/')
def hello_world1():
return render_template("index1.html")
@app.route('/sonce')
def hello_world():
id = request.args
lat = id["lat"]
lon = id["lon"]
url = f"https://api.sunrise-sunset.org/json?lat={lat}&lng={lon}&date=2024-04-22"
klic = requests.get(url).json()
vzhod = klic["results"]["sunrise"]
zahod = klic["results"]["sunset"]
return jsonify({'vzhod': vzhod, 'zahod': zahod})
app.run(host='0.0.0.0', port=8080, debug=True)
```
### HTML
```htmlembedded=
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<h1>Welcome to My Page</h1>
<form id="sonck">
<input type="text" id="lat" name="lat" placeholder="latitude"> <!-- Added id="lat" -->
<input type="text" id="lon" name="lon" placeholder="longitude"> <!-- Added id="lon" -->
</form>
<button onclick="sonckGet()">dobi sonce</button>
<p>vzhod: <span id="vzhod"></span></p> <!-- Added span with id="vzhod" -->
<p>zahod: <span id="zahod"></span></p> <!-- Added span with id="zahod" -->
<script>
function sonckGet(){
let lat = document.getElementById("lat").value;
let lon = document.getElementById("lon").value;
$.ajax({
url:"/sonce",
data: {
lat: lat,
lon: lon
},
success: function(result) {
$("#vzhod").text(result.vzhod)
$("#zahod").text(result.zahod)
}
});
}
</script>
</body>
</html>
```
# AJAX numbersQuote
### PYTHON
```python=
from flask import Flask, request, jsonify, render_template
import pprint
import requests
app = Flask('app')
@app.route('/')
def hello_world():
return render_template("index.html")
@app.route('/quote')
def get_quote():
id = request.args
num = id["num"]
url = f"http://numbersapi.com/{num}"
quote = requests.get(url)
return jsonify({'quote': quote.text})
app.run(host='0.0.0.0', port=8080)
```
### HTML
```htmlmixed=
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>New HTML Page</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<h1>Welcome to this website</h1>
<form>
<input type="text" id="num" name="num" placeholder="number">
</form>
<button onclick="quoteGet()">quote</button>
<p>quote: <span id="quote"></span></p>
<script>
function quoteGet() {
let num = document.getElementById("num").value;
$.ajax({
url: "/quote",
data: {
num: num
},
success: function(result) {
$("#quote").text(result.quote)
}
})
}
</script>
</body>
</html>
```
# AJAX meme
### PYTHON
```python=
from flask import Flask, render_template, request, jsonify
from flask.json import jsonify
import requests
import pprint
app = Flask('app')
@app.route('/')
def index():
url = "https://api.imgflip.com/get_memes"
klic = requests.get(url).json()
values = klic['data']['memes']
return render_template('index.html', values = values)
@app.route('/meme')
def meme():
lin = ""
ime = ""
id = request.args['id']
url = "https://api.imgflip.com/get_memes"
klic = requests.get(url).json()
for i in klic['data']['memes']:
if i['id'] == id:
lin = i['url']
ime = i['name']
img = f'<img src="{lin}" width="500" height="500" text-align="center">'
return jsonify({'slika': img, 'name': ime})
app.run(host = '0.0.0.0', port = 8080, debug=True)
```
### HTML
```htmlmixed=
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Meme page</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<h1>MEME</h1>
<form></form>
<select id="izbrano">
{% for i in values %}
<option value="{{ i.id }}">{{ i.name }}</option>
{% endfor %}
</select>
<button onclick="memeGet()">Dobi sliko</button>
<h2 id="imeslike"></h2>
<div id="slika"></div>
<script>
function memeGet() {
let id = document.getElementById("izbrano").value;
$.ajax({
url: "/meme",
data: {
id: id
},
success: function(result) {
$("#imeslike").text(result.name)
console.log(result.slika)
slika.innerHTML = result.slika
}
})
}
</script>
</body>
</html>
```
# AJAX vreme z LAT in LON
### PYTHON
```python=
from flask import Flask, render_template, request, jsonify
import requests
import pprint
app = Flask('app')
@app.route('/')
def hello_world1():
return render_template("index.html")
@app.route('/vreme')
def hello_world():
id = request.args
pprint.pprint(id)
lat = id["lat"]
lon = id["lon"]
url = f"https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid=07f6bed890038cb7cd54961d3cdcbb73"
klic = requests.get(url).json()
pprint.pprint(klic)
vreme1 = klic["weather"][0]["description"]
return jsonify({'vreme': vreme1})
app.run(host='0.0.0.0', port=8080, debug=True)
```
### HTML
```htmlmixed=
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<h1>Welcome to My Page</h1>
<form id="location">
<input type="text" id="lat" name="lat" placeholder="latitude"> <!-- Added id="lat" -->
<input type="text" id="lon" name="lon" placeholder="longitude"> <!-- Added id="lon" -->
</form>
<button onclick="vremeGet()">dobi vreme</button>
<p>vreme: <span id="vreme"></span></p> <!-- Added span with id="vzhod" -->
<script>
function vremeGet(){
let lat = document.getElementById("lat").value;
let lon = document.getElementById("lon").value;
$.ajax({
url:"/vreme",
data: {
lat: lat,
lon: lon
},
success: function(result) {
$("#vreme").text(result.vreme)
}
});
}
</script>
</body>
</html>
```
# AJAX MIN/MID/MAX
### PYTHON
```python=
from flask import Flask, jsonify, render_template, request
import pprint
import requests
app = Flask('app')
@app.route('/')
def hello_world():
return render_template("index.html")
@app.route("/numGet")
def numGet():
stev1 = int(request.args.get("stevilo1"))
stev2 = int(request.args.get("stevilo2"))
stev3 = int(request.args.get("stevilo3"))
if(stev1 > stev2 and stev1 > stev3):
max = stev1
if(stev2 > stev1 and stev2 > stev3):
max = stev2
if(stev3 > stev1 and stev3 > stev2):
max = stev3
if(stev1 < stev2 and stev1 < stev3):
min = stev1
if(stev2 < stev1 and stev2 < stev3):
min = stev2
if(stev3 < stev1 and stev3 < stev2):
min = stev3
if(stev1 > stev2 and stev1 < stev3 or stev1 > stev3 and stev1 < stev2):
middle = stev1
if(stev2 > stev1 and stev2 < stev3 or stev2 < stev1 and stev2 > stev3):
middle = stev2
if(stev3 > stev1 and stev3 < stev2 or stev3 < stev1 and stev3 > stev2):
middle = stev3
return jsonify({'max': max, 'min': min, 'middle': middle})
app.run(host='0.0.0.0', port=8080)
```
### HTML
```htmlmixed=
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<title>Sample Page</title>
</head>
<body>
<h1>Hello, World!</h1>
<form id="stevila">
<input type="text" id="stevilo1" name="stevilo1" placeholder="stevilo1">
<input type="text" id="stevilo2" name="stevilo2" placeholder="stevilo2">
<input type="text" id="stevilo3" name="stevilo3" placeholder="stevilo3">
</form>
<button onclick="numGet()">Dobi sliko</button>
<p id=minSt></p>
<p id=midSt></p>
<p id=maxSt></p>
<script>
function numGet(){
let stevilo1 = document.getElementById("stevilo1").value
let stevilo2 = document.getElementById("stevilo2").value
let stevilo3 = document.getElementById("stevilo3").value
$.ajax({
url: "/numGet",
data: {
stevilo1: stevilo1,
stevilo2: stevilo2,
stevilo3: stevilo3
},
success: function(result){
$("#minSt").text(result.min)
$("#midSt").text(result.middle)
$("#maxSt").text(result.max)
}
})
}
</script>
</body>
</html>
```
JINJA CHEATSHEET
Basic usage
- variable x has content: {{ x }}
- expression: {{ x + 1 }}
- escaped for HTML: {{ x | e }}
Control structures
{% for x in range(5) %}
{% if x % 2 == 0 %}
{{ x }} is even!
{% else %}
{{ x }} is odd!
{% endif %}
{% endfor %}
Whitespace trimming
these are
{{ "three" }}
lines.
this is conc
{{- "at" -}}
enated.
Special blocks
{% filter e %}
{% raw %}
This is a raw block where {{nothing is evaluated}}
{% not even this %}
and <html is escaped> too with "e" filter
{% endraw %}
{% endfilter %}
{% macro myfunc(x) %}
this is a reusable macro, with arguments: {{x}}
{% endmacro %}
{{ myfunc(42) }}
{#
this is a comment
#}
Inheritance
shared.html
<html>
<head>
<title>{%block title %}{% endblock %}</title>
</head>
<body>
<header><h1>{% block title %}{% endblock %}</h1></header>
<main>{% block content %}{% endblock %}</main>
</body>
</html>
home.html
{% extends "shared.html" %}
{% block title %}Welcome to my site{% endblock %}
{% block content %}
This is the body
{% endblock %}
Library#
Basic usage
from jinja2 import Template
template = Template('Hello {{ name }}!')
template.render(name='John Doe') == u'Hello John Doe!'