demo32.pyのプログラム

demo32のプログラム

– 他の「demoxx.html」プログラムは省略します。
– 後日機会があったら当ブログに載せます。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo32.py sessin managed & username get
from flask import Flask, redirect, request, render_template, url_for, session

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo07.html')

@app.route('/program', methods=['GET', 'POST'])
def program():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo03.html')

@app.route('/program1', methods=['GET', 'POST'])
def program1():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo04.html')

@app.route('/program2', methods=['GET', 'POST'])
def program2():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo05.html')

@app.route('/param/<parameter>')
def show_user_profile(parameter):
    if 'username' in session:
        html = render_template('demo07.html',name = str(parameter))        
        return html
    return 'You are not logged in. from param processing'

@app.route('/reset', methods=['GET', 'POST'])
def reset():
    session['username'] = 'monkey'
    return render_template('check31.html')

@app.route('/')
def func():
    if 'username' in session:
        html = render_template('demo07.html',name = str(session['username']))        
        return html
    return 'You are not logged in'

@app.route('/check', methods=['GET', 'POST'])
def check():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('func'))
    return render_template('check31.html')

@app.route('/',methods=['POST'])
def index():

    if (request.form['attr'] == 'need'):

        success = False
        name = request.form["username"]
        passwd = request.form["pass"]
        att1 = request.form['attr']
        my_message = "keyword処理は?"
    else:
        con1 = request.arg.get('_ControlID')
        pg1 = int(request.arg.get('_PageID'))
        act1 = request.arg.get('_ActionID')
        flg1 = request.arg.get('getFlg')
        html = render_template('demo07.html', con = con1, pg = str(pg1), act = act1, flg = flg1)        
        return html

    user_data = [{"id":"カリフラワー", "pass":"hanakyabetsu"},{"id":"西行法師", "pass":"masako"},{"id":"monkey", "pass":"kayochan"},{"id":"program1", "pass":"pass1"}]

    for i in range(0, 10):
        if user_data[i]["id"] == name:
            if user_data[i]["pass"] == passwd:
                success = True
                session['username'] = name
                return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)
            else:
                continue
        else:
            continue
    success = False
    return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)

@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('func'))

app.secret_key = 'B0Qp89i/2xY F~XHH!jnVVLWX/,%QR'

if __name__ == '__main__':
    app.run(debug=True)

– 以上セッション処理プログラムでした。

↑人気ブログランキングに参加しています。ポチっと1票を!

WP SyntaxHighlighterを使ったPython Programの例

WP SyntaxHighlighterを使ったPython Programの例

WordPressでSyntaxHighlightができるようになった。
Python ProgramのClassの例である。
これでテキストをコピペできるようになったが、その代わりHydrogenの結果などを表現できなくなった。長短相半ばするといったところか。今後は場合によって両者を使い分けることとする。

class Fish:
    def __init__(self, name, build="ほね", eyelids=False):
        self.name = name
        self.build = build
        self.eyelids = eyelids

    def swim(self):
        print("こちらの魚は泳ぎます")

    def swim_back(self):
        print("こちらの魚は後ろ向きにも泳ぎます")

class Medaka(Fish):
    pass

#mach1
mach = 1225
topspeed = 40000
print(topspeed / mach)

no0 = Fish("魚1号(親クラス)")
print(no0.name)
print('骨格:',no0.build)
print('まぶた:',no0.eyelids)
no0.swim()
no0.swim_back()

no1 = Medaka("魚2号(子クラス)")
print(no1.name)
print('骨格:',no1.build)
print('まぶた:',no1.eyelids)
no1.swim()
no1.swim_back()

# below do not execute
class Kingyo(Fish):
    def __init__(self, name, build="ほね", eyelids=False):
        self.name = '金魚ちゃん' + name + 'だよ'
        self.build = build + ' かな'
        self.eyelids = eyelids

以下がこれまでの当ブログでの表現

Python Classの例(Atom)の場合

(写真はY.O.氏から借用)
↑人気ブログランキングに参加しています。ポチっと1票を!

ジェネレータその1

ジェネレータ関数は、関数を動かしながら、yield文を使って何度も結果を返すことができます。

ジェネレータその1

ジェネレータ関数は、関数を動かしながら、yield文を使って何度も結果を返すことができます。
アイキャッチ画像は
①素数を返すジェネレータ関数
②割り切れる数を見つける
③見つかったのでループを中断
④素数が見つかったのでyieldで返す
⑤数値を増加

⑥素数を14個洗い出し
⑦14個まで素数を表示

↑人気ブログランキングに参加しています。ポチっと1票を!

イテレータ

イテレータ

・次の要素を取り出す処理
・要素が終わったかどうかを判別する処理
①リストをイテレータオブジェクトに変換
②「次の要素」を取り出す
④要素がなくなったら、「StopIteration」という例外が発生します。

↑人気ブログランキングに参加しています。ポチっと1票を!

ディクショナリ内包表記とset内包表記

ディクショナリ内包表記とset内包表記

アイキャッチ画像はディクショナリ内包表記(①)と
set内包表記(③)

ディクショナリ内包表記とset内包表記


↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその5

公約数のリストを持つタプルを作り出す。

Comprehensionその5

アイキャッチ画像はリスト内包表記を使って、1から20までの数と公約数のリストを持つタプルを次々と作っています。

↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその4

Comprehensionその4

リスト内包表記のシーケンスの右には、ifを使った条件式を置くことができる。
①②は24の約数をリストにして返す。

③④は等価で結果は⑤である。
④はリスト内包表記である。

↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその2

回文であるかどうか判定した結果「True」とでました。

Comprehensionその2

リスト内包表記と文字列を使って、文字列を反転する。
文字列に渡す引数としてマイナスを使うと、
最後から数えた要素を取得できることから
文字列を反転する。
「あいうえお」が反転しました。
回文であるかどうか判定した結果「True」とでました。
②⑤はs == “”.join(reversed(s))と等価(rs == ・・・)

↑人気ブログランキングに参加しています。ポチっと1票を!