[Python_Flask] for文(繰り返し処理)の使い方

Flask
スポンサーリンク

こんにちは。

今回の記事では、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=&quot;Welcome to Rope_Blog&quot;,\
        message=&quot;IF statement sample&quot;,\
        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 &quot;layout.html&quot; %}
{% block title %}
index
{% endblock %}

{% block headline %}
{{title}}
{% endblock %}

{% block content %}
&amp;lt;p&gt;{{message}}&amp;lt;/p&gt;
&amp;lt;p&gt;Total:{{data | sumtest}}&amp;lt;/p&gt;
&amp;lt;p&gt;Total:{{total(10)}}&amp;lt;/p&gt;
{% 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>

コメント

タイトルとURLをコピーしました