วิธีการทำเว็บไซต์ 2 ภาษา ในภาษา python

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: วิธีการทำเว็บไซต์ 2 ภาษา ในภาษา python

วิธีการทำเว็บไซต์ 2 ภาษา ในภาษา python

Post by jirawoot » 22/08/2019 3:20 pm

วิธีการทำเว็บไซต์ 2 ภาษา ในภาษา python
ในภาษา Python สามารถเขียนเว็บไซต์ได้การ flask framework ซึ่งเป็นตัวจัดการเว็บไซต์ของภาษา Python ส่วนมากเว็บไซต์ต่างๆ จะทำมาให้รองรับ 2 ภาษา และสำหรับคนที่กำลังหาวิธีการทำหรือตัวอย่างสามารถนำไปใช้หรือประยุกต์ได้ ส่วนวิธีขั้นตอน เป็นการใช้ไฟล์ config มาเก็บตัวแปรของทั้งสองภาษา แล้วให้ส่งไปยังหน้าไฟล์ HTML เพื่อแสดง จะต้องทำการเรียกใช้ library configparser ของ Python เพื่อใช้ตัวแปรในไฟล์ config โดยวิธีการก็จะมีดังนี้

คำสั่งติดตั้ง flask และ configparser

Code: Select all

pip install flask

และ

Code: Select all

pip install configparser


ขั้นตอนแรกให้ทำการ import flask และ configparser

Code: Select all

from flask import Flask, render_template
import configparser

แล้วเรียกใช้ configparser เพื่อเรียกไฟล์ config

Code: Select all

config = configparser.ConfigParser()
config.read('config.conf')

จากนั้นให้สร้างตัวแปรในไฟล์ config.conf

Code: Select all

[TH]
str1=สวัสดี ไพธอน
str2=วันนี้วันอะไร

[EN]
str1=Hallo python
str2=What's today

ทำการกำหนดตัวแปรในไฟล์ python

Code: Select all

from flask import Flask, render_template, request
import configparser

config = configparser.ConfigParser()
config.read('config.conf')
text_en=config['EN']
text_th=config['TH']


สร้าง app.route ขึ้นมา

Code: Select all

@app.route('/')
def index():
    return render_template('home.html')

จากนั้นให้รับค่า get ที่ส่งมาจากหน้า HTML เเล้วเช็ค ตัวแปร get นั้น

Code: Select all

@app.route('/', methods=['GET'])
def index():
    text = text_th
    if request.values.get('lang') and request.values.get('lang') == 'en':
        text=text_en
    return render_template('home.html' , text=text)


คำสั่งหน้า python

Code: Select all

from flask import Flask, render_template, request
import configparser

config = configparser.ConfigParser()
config.read('config.conf')

text_en=config['EN']
text_th=config['TH']

app = Flask(__name__)

@app.route('/', methods=['GET'])
def index():
    text = text_th
    if request.values.get('lang') and request.values.get('lang') == 'en':
        text=text_en
    return render_template('home.html' , text=text)

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


คำสั่งหน้า HTML

Code: Select all

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
ข้อความ : <span>{{text['str1']}}</span><br>

ข้อความ : <span>{{text['str2']}}</span><br>

<a href="?lang=th">ภาษาไทย</a>
<a href="?lang=en">ภาษาอังกฤษ</a>
</body>
</html>


ผลที่ได้
Image
จะสังเกตได้ตัวแปร get เท่ากัน th
Image
เมื่อตัวแปรเปลี่ยนเป็น en ข้อความก็เปลี่ยนภาษาอังกฤษ
เท่านี้ก็เป็นอันที่เรียบร้อย



อ้างอิง
https://www.mindphp.com/forums/viewtopic.php?p=161740#p161740
https://www.mindphp.com/บทเรียนออนไลน์/python-framework-flask/6442-flask-framework-html-css-python.html
https://www.mindphp.com/คู่มือ/73-คืออะไร/2417-python-คืออะไร.html

Top