ผลต่างระหว่างรุ่นของ "Quick Start for Developers"

จาก คูนิฟ็อกซ์ วิกิ
บรรทัดที่ 3: บรรทัดที่ 3:
== สร้าง Table ==
== สร้าง Table ==
สร้างหน้าที่แต่ส่วนของ table โดยมีรูปร่างหน้าตาดังนี้<p>
สร้างหน้าที่แต่ส่วนของ table โดยมีรูปร่างหน้าตาดังนี้<p>
<รูปหน้าที่มีแต่ตาราง><p>
<รูปหน้าที่มีแต่ตาราง(image1)><p>
โดยไฟล์ที่จำเป็นมีดังนี้
โดยไฟล์ที่จำเป็นมีดังนี้
=== Model.py ===
=== Model.py ===

รุ่นแก้ไขเมื่อ 13:18, 24 กุมภาพันธ์ 2568

Start here

สร้าง Table

สร้างหน้าที่แต่ส่วนของ table โดยมีรูปร่างหน้าตาดังนี้

<รูปหน้าที่มีแต่ตาราง(image1)>

โดยไฟล์ที่จำเป็นมีดังนี้

Model.py

กำหนดรูปแบบของ database

class Anime(CuneiModel):
    id = AutoIncrementField()
    stid = IntegerField()
    code = CharField(default="")
    name = CharField(default="")
    type = CharField(default="")
    Publisher = CharField(default="")
    writer = CharField(default="", null=True)
    class Meta:
        database = SqliteExtDatabase(None)

ฟังก์ชั่นการใช้งานและชนิดช้อมูล

  • คำสั่งในการใช้งาน
    • 'AutoIncrementField()': กำหนดให้มีรันตัวเลขอัตโนมัติ
    • 'null': กำหนดให้databaseสามารถเว้นว่างได้
    • 'SqliteExtDatabase': เปิดdatabase
  • กำหนดชนิดของข้อมูล
    • 'IntegerField()': ตัวแปรชนิดตัวเลขที่เป็นจำนวนเต็ม
    • 'FloatField()': ตัวแปรชนิดตัวเลขที่จุดทศนิยม
    • 'CharField()': ตัวแปรชนิดที่เป็นตัวอักษร
    • 'TextField()': ตัวแปรชนิดที่เป็นตัวอักษรและช่องข้อความขยายได้
    • 'DateField()': ?

Table.py

class Anime_table(CunriTble):
    MASTER_colsizes = [1,3,10,10,0,7,7,7]
    MASTER_colnames = ["stid", "code", "name", "type", "publisher_stid", "publisher_code", "publisher_name", "writer"]
    MASTER_coltypes = ["int", "str", "str", "sel", "int", "str", "str", "str"]
    MASTER_choicecols = ["type"]
    MASTER_choices = [[("Comedy", "Comedy"), ("Action", "Action"), ("Fiction", "Fiction"), ("Fantasy", "Fantasy"), ("Adventure", "Adventure")]]
    MASTER_schfill = {"publisher_code":["ModalPublisher:code", "publisher_stid:stid,publisher_name:name"]}

    class SubForm(FlaskForm, CuneiSubForm):
        stid = StringField("")
        code = StringField("", validators=[InputRequired("Required!")])
        name = StringField("", validators=[InputRequired("Required!")])
        type = SelectField("")
        publisher_stid = StringField("Publisher StID", validators=[InputRequired(lazy_gettext("Required!"))], render_kw={"readonly":""})
        publisher_code = StringField("Publisher Code", validators=[InputRequired(lazy_gettext("Required!"))])
        publisher_name = StringField("Publisher Name", render_kw={"readonly":""})
        writer = StringField("", validators=[InputRequired("Required!")])
        def validate_writer(self, writer):
            if len(writer.data) <= 1:
                raise ValidationError(lazy_gettext("Very short"))

ฟังก์ชั่นการใช้งานและตัวแปร

  • คำสั่งในการใช้งาน
    • 'MASTER_colsizes': ขนาดของช่องข้อมมูล(ทุกคอลัมน์ที่อยู่ในdatabaseต้องเอามาใส่ตรงนี้ให้หมด แต่สามารถใสาค่าเป็น 0 ได้ หากไม่อยากให้ผู้ใช้เห็น)
    • 'MASTER_colnames': ชื่อหัวคอลัมน์ที่ผู้ใช้เห็น(ไม่จำเป็นต้องตรงกับที่อยู่ในdatabase)
    • 'MASTER_coltypes': ชนิดของช่องข้อมูล
    • 'MASTER_choicecols':
    • 'MASTER_choices':
    • 'MASTER_schfill':

Header 4

สร้าง Form - non Database

สร้าง Form - Database