Python,HTML,CSSの連携

下記コーディングはQiitaの記事を参考にさせていただきました。
-Python(app.py)

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# app.py

from flask import Flask, redirect ,request,render_template

app = Flask(__name__)

@app.route("/check")
def check():
    return render_template('check.html')

@app.route('/',methods=['POST'])
def index():
    my_age = int(request.form["age"])
    my_name = request.form["name"]
    return render_template('index.html',age=my_age,name=my_name)

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

-HTML(check.html)

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>年齢確認</title>
<!--    <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}" />  -->
    <link rel="stylesheet" type="text/css" href="static/css/style.css" />
</head>
<body>

    <form action="/" method="post">
        <h1>年齢確認</h1>
        <input type="text" name="name" placeholder="名前" required/>
        <input type="number" name="age" placeholder="年齢" required/>
        <button>年齢確認</button>
    </form>

</body>
</html>

-HTML(index.html)

<!DOCTYPE html>  <!-- index.html -->
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>18禁のサイト</title>
<!--        <link rel="stylesheet" type="text/css" href="style.css" />  -->
	<link rel="stylesheet" type="text/css" href="static/css/style-04.css" />
        <!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
    </head>
    <body>
    <h1>射幸心を煽りまくるホームページ</h1>
    {% if age >= 18 %}
    {{name}}さんは18歳以上ですね。
    {% else %}
    {{name}}さんみたいな方はこんなHP見ちゃいけません?
    {% endif %}

    </body>
</html>

-CSS(style.css)

@charset 'utf-8';
body	 {
	background: sandybrown;
	color: darkgreen;
	margin-left: 2m;
	margin-right: 2m;
}

-CSS(style-04.css)

@charset 'utf-8';
body	 {
	background: violet;
	color: darkgreen;
	margin-left: 2m;
	margin-right: 2m;
}

以上

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

四則演算(PyCharm)

四則演算

-PyCharmとChromeで実施

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo09.py

from flask import Flask,request

app = Flask(__name__)

@app.route('/')
def index():
    a = int(request.args.get("a"))
    b = int(request.args.get("b"))
    op = request.args.get("op")
    
    if op == "a":
          c = str(a + b)
          return "demo09 Add answer = "+c
    elif op == "s":
          c = str(a - b)
          return "demo09 Subtract answer = "+c
    elif op == "m":
          c = str(a * b)
          return "demo09 Multiply answer = "+c
    elif op == "d":
          c = str(a // b)
          return "demo09 Divide answer = "+c
    elif op == "r":
          c = str(a % b)
          return "demo09 Reminder answer = "+c
    elif op == "p":
          c = str(a ** b)
          return "demo09 Power answer = "+c
    else:
          return "demo09 Illeagal operator"

if __name__ == '__main__':
    app.run(debug=True)
#http://127.0.0.1:5000/?op=p&a=3&b=2

以上

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

元号特定プログラム(Python版)

PowerShell_ISE使って西暦年月日を指定して、その日がどの元号に当たるかを特定するプログラムをPython言語にアレンジしたものである。

元号特定プログラム

前に当ブログで西暦、和暦相互変換のプログラムを載せた。今回はPowerShell_ISE使って西暦年月日を指定して、その日がどの元号に当たるかを特定するプログラムをPython言語にアレンジしたものである。Ad-Conversion 20190502をAd_Conversion(20190502)で関数を呼び出し結果を表示する。
PowerShell_ISEをPython
変数「$・・」を「・・」
「-(ハイフン)」を「_(アンダーバー)」
「Function」を「def」(関数の定義)
「ーlt」を「<」(比較演算子)→全角で代用
「elseif」を「elif」(予約語の相違)
「 + 」を「,」(カンマ)
関数のパラメーター
「数字」を「(数字)」にそれぞれ書き換えの必要がある。

元号特定プログラム

def Ad_Conversion(indate):

    ERA_MEIJI = "明治"
    ERA_TAISHO = "大正"
    ERA_SHOWA = "昭和"
    ERA_HEISEI = "平成"
    ERA_REIWA = "令和"

    DATE_MEIJI = 18680908
    DATE_TAISHO = 19120730
    DATE_SHOWA = 19261225
    DATE_HEISEI = 19890108
    DATE_REIWA = 20190501

    if (indate < DATE_MEIJI):

        print("明治以前の日付には対応していません。")

    elif (indate < DATE_TAISHO):

        print("元号は", ERA_MEIJI, "です。")

    elif (indate < DATE_SHOWA):

        print("元号は", ERA_TAISHO, "です。")

    elif (indate < DATE_HEISEI):

        print("元号は", ERA_SHOWA, "です。")

    elif (indate < DATE_REIWA):

        print("元号は", ERA_HEISEI, "です。")

    else:

        print("元号は", ERA_REIWA, "です。")

Ad_Conversion(19300101)  # ①
Ad_Conversion(18700101)
Ad_Conversion(20190101)
Ad_Conversion(20190502)
Ad_Conversion(20200101)
Ad_Conversion(19510817)

# 下記は同スクリプトを実行した結果です
# 元号は昭和です。 # ①
# 元号は明治です。
# 元号は平成です。
# 元号は令和です。
# 元号は令和です。
# 元号は昭和です。

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

PyCharm Version Up(19.2)

PyCharm Version Up(19.2)

PyCharmのバージョンアップを行った。
Ver18.3→Ver19.2である。
WSLで作ったFlaskもAtomで作ったPython Programも皆、PyCharm上で動く。
将来的にはSQLiteも動かす予定だ。

# -*- coding: utf-8 -*-
print("例:明治 42 年")
S = input("和暦:")

syear = 0
print(S.split())
items = S.split()
year = int(items[1])

if items[0] == "明治":
    syear = 1867 + year
elif str(items[0]) == "大正":
    syear = 1911 + year
elif items[0] == "昭和":
    syear = 1925 + year
elif items[0] == "平成":
    syear = 1988 + year
elif items[0] == "令和":
    syear = 2018 + year
else:
    print(items[0],"Error")

print("西暦",str(syear),"年")

これは和暦→西暦変換プログラムである。

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

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票を!

Windows10のファイル名のエンコーディング

‘utf-8’を使っていました。

Windows10のファイル名のエンコーディング

Windows10にインストールしたPython3を使って、
システムが使用しているファイル名のエンコーディングを
調べます。
すると’utf-8’を使っていました。

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

ファイル操作(文字列データの場合)

ファイル操作(文字列データの場合)

以前、イメージファイル操作について述べた。
例えばフェルメールの「真珠の耳飾りの少女」の表示などである。
ここではもっと単純な文字列の書き込み、読み出しの例をAtom・Hydrogen、PyCharmで表示する。
‘w’は何度同じものを書き込んでも同じデータが書き込まれる。
‘a’にするとファイルの終わりに追加される。
単純だがPythonの基本なので取り上げた。

書き込んだデータ

ファイル操作・PyCharmの場合(書き込み)

ファイル操作・PyCharmの場合(読み出し)


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

Atom(Alt + R)(文字化け)

191002

エンコードの判定

以前からHydrogenで日本語の表示はうまくいっていたがAtom(Alt + R)で日本語を表示させると文字化けが起きてしまっていた。何が原因かわからなかったのでアイキャッチ画像にあるような関数を作って(encodings = [“ascii”, “utf-8”, “shift-jis”, “euc-jp”])の4種類を利用してAtomのコードが何であってもAlt + Rで文字化けしないように試みたが②のように無駄だった。日本語表示させるためにはPyCharmを使うか、Hydrogenを使ってステップバイステップでやるしかないということが分かった。

Atom(Alt + R)文字化けあり

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

関数と組み込み型・関数でキーワード引数を受け取る

imgタグのアトリビュートをすべて引数として定義するのは大変です。そこで、未定義のキーワード引数を受け取る引数を定義して、処理することにします。

190903

関数と組み込み型・関数でキーワード引数を受け取る

HTMLの画像を表示するタグを出力する関数を作るとします。画像を表示するためのimgタグには、画像のパスや横幅、画像の代わりに表示するための文字列(alt)など、いろいろな種類のアトリビュートがあります。imgタグのアトリビュートをすべて引数として定義するのは大変です。そこで、未定義のキーワード引数を受け取る引数を定義して、処理することにします。
関数の引数argに代入されるのはディクショナリです。ディクショナリのキーと値には、関数呼び出しのキーワード引数の内容が登録されています。ディクショナリのkey()メソッドを使ってキーの一覧を取り出し、ループを組みます。ループの中では、キーと値をフォーマット文字列を使って文字列に変換し、戻り値として返す変数に結合しています。
img_tag()というタグを呼び出すと、imgタグの内容を変数に代入できます。

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

zip関数

zip()関数を使い、名前とメールアドレスのリストを使って、名前を差し込んだメールを送るようなコードを書きたい場合にアイキャッチ画像のようなコードになります。

190809

zip関数

zip()関数で作ったシーケンスをfor文で使うと、2つのタプルを、1つずつ取り出しながら繰り返し変数に代入していきます。繰り返し変数を2つ記述すると、2つの要素を別々の変数で受け取ることができます。zip()関数を使い、名前とメールアドレスのリストを使って、名前を差し込んだメールを送るようなコードを書きたい場合にアイキャッチ画像のようなコードになります。

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