こんにちは。
今回の記事では、Python_Fraskのfor文の使い方について書こうと思います。
この記事が誰かの役に立ったら幸いです。
for文(繰り返し処理)の書き方
for 変数 in 繰り返す範囲
繰り返す内容
で書くことができる。
メリット
メリットは言わずもがな、for文を書くことで、同じコードを書かくなくて良くなる。
面倒がなくなるし、コードの可読性も向上する。
コードが見やすくなるのはとても重要だと思う。
Sampleコード①
簡単なサンプルコードは以下
message =”Hello”
for x in range(5):
print(message)
実行すると
Hello
Hello
Hello
Hello
Hello
と繰り返した結果が出力される
Sampleコード②
for文(繰り返し処理)を利用して、計算してみる。
Nm=[1,2,3,4,5]
sum=0
for n in Nm:
sum +=n
print(sum)
実行した結果
1
3
6
10
15
と繰り返し計算された結果が出力される。
これから、この処理の恩恵を受ける日が来るのだろう。多分。。。
Fraskを使用したfor文(繰り返し処理)
Jinjaを使用した場合
Fraskに標準で装備されているJinjaというテンプレートエンジンを使用した場合、htmlの中に for文を書くことができる。
{% for 変数 in 繰り返す範囲 %}
繰り返す内容
{% endofor %}
{% %}と{% endfor %}
を使用することで、htmlにfor文を書くことできる。
Sampleコード③
では実際にFraskを使用して、コードを書いてみる。
試しに、for文は2つ書いてみる。
ファイル名:main.py
<pre class="wp-block-syntaxhighlighter-code"> from flask import Flask, render_template, request import random app = Flask(__name__) @app.route('/', methods=['GET']) def index(): n = random.randrange(3,5) data = [] for n in range(n): data.append(random.randrange(0,100)) return render_template('index.html', \ title="Welcome to Rope_Blog",\ message="IF statement sample",\ data=data ) @app.template_filter('sumtest') def filter(data): total = 0 for item in data: total += item return total app.jinja_env.filters['sumtest'] = sumtestfilter @app.context_processor def test(): def total(n): total = 0 for i in range(n + 1): total += i return total return dict(total=total) </pre>
for文①
def filter(data):
total = 0
for item in data:
total += item
return total
app.jinja_env.filters[‘sumtest’] = sumtestfilter
これは1つ目のfor文
filterという関数を定義して、引数にdataを定義する。
itemからdataまで、繰り返し、totalを計算することにしている。
dataはradom関数を使用して、0から100の間で適当に3つ出力している。
for文②
def total(n):
total = 0
for i in range(n + 1):
total += i
return total
これは2つ目のfor文
totalという関数を定義して、引数にnを定義している。
iからn+1まで繰り返し足し算するように書いている
htmlのサンプルコード
一応htmlのコードも載せておく。
for文①とfor文②の両方を出力できるようにしている。
<pre class="wp-block-syntaxhighlighter-code"> {% extends "layout.html" %} {% block title %} index {% endblock %} {% block headline %} {{title}} {% endblock %} {% block content %} &lt;p>{{message}}&lt;/p> &lt;p>Total:{{data | sumtest}}&lt;/p> &lt;p>Total:{{total(10)}}&lt;/p> {% endblock %} {% block footer %} coryright 2020 Rope_blog {% endblock %} </pre>
出力結果
出力いた結果は以下
2つのfor文の演算結果が出力されていることが確認できた。
めでたし!
これでif文の利用方法は終わり。
一応CSSも載せておく
CSSのサンプルコード
<pre class="wp-block-syntaxhighlighter-code"> html,body {height:100%;} div.test{ display:table; width:100%; height:100%; background-color:rgb(135, 219, 252); text-align:center; } div.test .target{ display:table-cell; vertical-align:middle; } div.footer{ font-size: 20px; border-bottom: 10px solid rgb(135, 250, 196); } </pre>
コメント