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