Web2py - บทนำ
web2pyถูกกำหนดให้เป็นเฟรมเวิร์กเว็บโอเพนซอร์สฟรีสำหรับการพัฒนาที่คล่องตัวซึ่งเกี่ยวข้องกับเว็บแอปพลิเคชันที่ขับเคลื่อนด้วยฐานข้อมูล มันเขียนด้วย Python และโปรแกรมใน Python มันเป็นเฟรมเวิร์กแบบเต็มสแต็ก ประกอบด้วยส่วนประกอบที่จำเป็นทั้งหมดผู้พัฒนาจำเป็นต้องสร้างเว็บแอปพลิเคชันที่ทำงานได้อย่างสมบูรณ์
web2py กรอบเป็นไปตาม Model-View-Controller รูปแบบของการใช้งานเว็บที่แตกต่างจากรูปแบบดั้งเดิม
Modelเป็นส่วนหนึ่งของแอปพลิเคชันที่มีตรรกะสำหรับข้อมูล อ็อบเจ็กต์ในแบบจำลองใช้สำหรับการดึงและจัดเก็บข้อมูลจากฐานข้อมูล
Viewเป็นส่วนหนึ่งของแอปพลิเคชันซึ่งช่วยในการแสดงผลข้อมูลแก่ผู้ใช้ปลายทาง การแสดงข้อมูลดึงมาจาก Model
Controllerเป็นส่วนหนึ่งของแอปพลิเคชันที่จัดการการโต้ตอบของผู้ใช้ คอนโทรลเลอร์สามารถอ่านข้อมูลจากมุมมองควบคุมอินพุตของผู้ใช้และส่งข้อมูลอินพุตไปยังโมเดลที่ระบุ
web2pyมีคุณสมบัติในตัวเพื่อจัดการคุกกี้และเซสชัน หลังจากทำธุรกรรม (ในรูปแบบของ SQL) เซสชันจะถูกจัดเก็บพร้อมกัน
web2pyมีความสามารถในการรันงานตามช่วงเวลาที่กำหนดหลังจากเสร็จสิ้นการดำเนินการบางอย่าง ซึ่งสามารถทำได้ด้วยCRON.
web2py - เวิร์กโฟลว์
ดูแผนภาพเวิร์กโฟลว์ที่ระบุด้านล่าง
แผนภาพเวิร์กโฟลว์อธิบายไว้ด้านล่าง
Models, Views และ Controller ส่วนประกอบประกอบเป็นแอปพลิเคชัน web2py ของผู้ใช้
สามารถโฮสต์แอปพลิเคชันหลายรายการใน web2py เดียวกันได้
เบราว์เซอร์ส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์และเซิร์ฟเวอร์โต้ตอบด้วย Model, Controller และ View เพื่อดึงเอาท์พุทที่จำเป็น
ลูกศรแสดงถึงการสื่อสารกับเอ็นจิ้นฐานข้อมูล แบบสอบถามฐานข้อมูลสามารถเขียนใน SQL ดิบหรือโดยใช้ web2py Database Abstraction Layer (ซึ่งจะกล่าวถึงในบทต่อไป) เพื่อให้web2py รหัสแอปพลิเคชันไม่ขึ้นอยู่กับเอ็นจิ้นฐานข้อมูลใด ๆ
Model สร้างการเชื่อมต่อฐานข้อมูลกับฐานข้อมูลและโต้ตอบกับไฟล์ Controller. Controller ในทางกลับกันโต้ตอบกับไฟล์ View เพื่อแสดงการแสดงข้อมูล
Dispatcherแมป URL ที่ร้องขอตามที่ระบุในการตอบสนอง HTTP กับการเรียกใช้ฟังก์ชันในคอนโทรลเลอร์ เอาต์พุตของฟังก์ชันอาจเป็นสตริงหรือตารางแฮช
ข้อมูลแสดงผลโดยไฟล์ View. หากผู้ใช้ร้องขอเพจ HTML (ค่าเริ่มต้น) ข้อมูลจะถูกแสดงในเพจ HTML หากผู้ใช้ร้องขอหน้าเดียวกันใน XML web2py จะพยายามค้นหามุมมองที่สามารถแสดงผลพจนานุกรมใน XML
โปรโตคอลที่รองรับของ web2py ได้แก่ HTML, XML, JSON, RSS, CSV และ RTF
โมเดล - ดู - คอนโทรลเลอร์
model-view-controller การเป็นตัวแทนของ web2py มีดังนี้ -
รุ่น
"db.py" is the model:
db = DAL('sqlite://storage.sqlite')
db.define_table(employee, Field('name'), Field(‘phone’))
Modelรวมถึงตรรกะของข้อมูลแอปพลิเคชัน มันเชื่อมต่อกับฐานข้อมูลดังที่กล่าวไว้ในรูปด้านบน พิจารณาว่ากำลังใช้ SQLite และเก็บไว้ในไฟล์storage.sqliteไฟล์ที่มีตารางกำหนดเป็นพนักงาน หากไม่มีตาราง web2py จะช่วยโดยการสร้างตารางตามลำดับ
ตัวควบคุม
โปรแกรม "default.py" คือ Controller.
def employees():
grid = SQLFORM.grid(db.contact, user_signature = False)
return locals()
ใน web2pyการแมป URL ช่วยในการเข้าถึงฟังก์ชันและโมดูล สำหรับตัวอย่างข้างต้น Controller มีฟังก์ชันเดียว (หรือ "การกระทำ") ที่เรียกว่าพนักงาน
การดำเนินการโดย Controller ส่งคืนสตริงหรือพจนานุกรม Python ซึ่งเป็นการรวมกันของคีย์และค่ารวมถึงชุดตัวแปรในเครื่อง
ดู
"default/contacts.html" คือ View.
{{extend 'layout.html'}}
<h1>Manage My Employees</h1>
{{=grid}}
สำหรับตัวอย่างที่กำหนด View แสดงผลลัพธ์หลังจากเรียกใช้ฟังก์ชันคอนโทรลเลอร์ที่เกี่ยวข้อง
จุดประสงค์ของสิ่งนี้ Viewคือการแสดงผลตัวแปรในพจนานุกรมซึ่งอยู่ในรูปแบบของ HTML View ไฟล์เขียนด้วย HTML แต่ฝังโค้ด Python ด้วยความช่วยเหลือของ {{ and }} ตัวคั่น
โค้ดที่ฝังลงใน HTML ประกอบด้วยโค้ด Python ในพจนานุกรม
เริ่มต้นด้วย web2py
web2py มาในแพ็คเกจไบนารีสำหรับระบบปฏิบัติการหลักทั้งหมดเช่น Windows, UNIX และ Mac OS X
ติดตั้ง web2py ได้ง่ายเพราะ -
ประกอบด้วยตัวแปล Python ดังนั้นคุณไม่จำเป็นต้องติดตั้งไว้ล่วงหน้า นอกจากนี้ยังมีเวอร์ชันซอร์สโค้ดที่ทำงานบนระบบปฏิบัติการทั้งหมด
ลิงค์ต่อไปนี้ประกอบด้วยแพ็คเกจไบนารีของ web2pyสำหรับดาวน์โหลดตามความต้องการของผู้ใช้ - www.web2py.com
web2pyเฟรมเวิร์กไม่จำเป็นต้องติดตั้งล่วงหน้าซึ่งแตกต่างจากเฟรมเวิร์กอื่น ๆ ผู้ใช้ต้องดาวน์โหลดไฟล์ zip และเปิดเครื่องรูดตามความต้องการของระบบปฏิบัติการ
web2py เฟรมเวิร์กเขียนด้วย Python ซึ่งเป็นภาษาไดนามิกที่สมบูรณ์ซึ่งไม่จำเป็นต้องมีการคอมไพล์หรือการติดตั้งที่ซับซ้อนเพื่อรัน
มันใช้เครื่องเสมือนเช่นภาษาโปรแกรมอื่น ๆ เช่น Java หรือ. net และสามารถคอมไพล์ซอร์สโค้ดที่เขียนโดยนักพัฒนาได้อย่างโปร่งใส
ระบบปฏิบัติการ | คำสั่ง |
---|---|
Unix และ Linux (การแจกจ่ายต้นทาง) | python web2py.py |
OS X (การแจกแจงแบบไบนารี) | เปิด web2py.app |
Windows (การกระจาย web2py แบบไบนารี) | web2py.exe |
Windows (แหล่งที่มาของการแจกจ่าย web2py) | c: /Python27/python.exe web2py.py |