Đồng thời xem Cách liệt kê các bảng cơ sở dữ liệu SQLite3 trên dòng lệnh
Bạn có thể sử dụng đoạn mã này để liệt kê tất cả các bảng SQL trong SQLite 3 của mình. cơ sở dữ liệu x trong Python
def tables_in_sqlite_db[conn]: cursor = conn.execute["SELECT name FROM sqlite_master WHERE type='table';"] tables = [ v[0] for v in cursor.fetchall[] if v[0] != "sqlite_sequence" ] cursor.close[] return tables
ví dụ sử dụng
#!/usr/bin/env python3 import sqlite3 # Open database conn = sqlite3.connect['/usr/share/command-not-found/commands.db'] # List tables tables = tables_in_sqlite_db[conn] # Your code goes here! # Example: print[tables] # prints ['commands', 'packages']
Chào mừng bạn đến với hướng dẫn về cách tạo bảng từ Cơ sở dữ liệu SQLite trong Python Flask. Vì vậy, bạn có một số dữ liệu trong cơ sở dữ liệu mà bạn muốn hiển thị trong một “bảng HTML đẹp”? . Đọc để biết ví dụ từng bước
ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào
MỤC LỤC
TẢI XUỐNG & LƯU Ý
Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa
GHI CHÚ NHANH
- Tạo một thư mục dự án, e. g.
D:\table
, giải nén mã bên trong thư mục này - Điều hướng đến thư mục dự án trong dòng lệnh
cd D:\table
, tạo một môi trường ảo để không làm hỏng các dự án khác của bạnvirtualenv venv
- Cửa sổ –
venv\scripts\activate
- Mac/Linux –
0# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
- Nhận tất cả các gói cần thiết –
1# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
- Tạo cơ sở dữ liệu
2# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
- Khởi chạy
3 và truy cập# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
4# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
MÃ VÍ DỤ TẢI XUỐNG
Nhấp vào đây để tải xuống tất cả mã nguồn ví dụ, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn đó hoặc sử dụng nó trong dự án của riêng bạn
BẢNG TỪ CƠ SỞ DỮ LIỆU SQLITE
Được rồi, bây giờ chúng ta hãy xem các bước hiển thị bảng HTML từ cơ sở dữ liệu SQLite
BƯỚC 1] CƠ SỞ DỮ LIỆU GIẢ
1A] BẢNG NGƯỜI DÙNG
S1A_người dùng. sql
-- [A] USERS
CREATE TABLE `users` [
`user_id` INTEGER NOT NULL,
`user_name` TEXT NOT NULL,
`user_email` TEXT DEFAULT NULL,
PRIMARY KEY["user_id" AUTOINCREMENT]
];
-- [B] DUMMY USERS
INSERT INTO `users`
[`user_name`, `user_email`]
VALUES
["Jo Doe", "jo@doe.com"],
["Job Doe", "job@doe.com"],
["Joe Doe", "joe@doe.com"],
["Jog Doe", "jog@doe.com"],
["Joi Doe", "joi@doe.com"],
["Jol Doe", "jol@doe.com"],
["Jon Doe", "jon@doe.com"],
["Jos Doe", "jos@doe.com"],
["Jou Doe", "jou@doe.com"],
["Joy Doe", "joy@doe.com"];
Đây là bảng giả và dữ liệu mà chúng ta sẽ sử dụng để tạo bảng HTML sau này. Không cần giải thích nhiều, chỉ có 3 trường
5 ID người dùng, khóa chính và tăng tự động# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
6 Tên người dùng# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
7 Email của người dùng# [A] LOAD PACKAGES import sqlite3, os from sqlite3 import Error # [B] DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "S1A_users.sql" # [C] DELETE OLD DATABASE IF EXIST if os.path.exists[DBFILE]: os.remove[DBFILE] # [D] IMPORT SQL conn = sqlite3.connect[DBFILE] with open[SQLFILE] as f: conn.executescript[f.read[]] conn.commit[] conn.close[] print["Database created!"]
1B] TẠO CƠ SỞ DỮ LIỆU SQLITE
S1B_create. py
# [A] LOAD PACKAGES
import sqlite3, os
from sqlite3 import Error
# [B] DATABASE + SQL FILE
DBFILE = "users.db"
SQLFILE = "S1A_users.sql"
# [C] DELETE OLD DATABASE IF EXIST
if os.path.exists[DBFILE]:
os.remove[DBFILE]
# [D] IMPORT SQL
conn = sqlite3.connect[DBFILE]
with open[SQLFILE] as f:
conn.executescript[f.read[]]
conn.commit[]
conn.close[]
print["Database created!"]
Tiếp theo, chúng ta có một tập lệnh đơn giản để tự tạo cơ sở dữ liệu SQLite. Vui lòng xóa cái này sau khi chạy… Nó hầu như không phục vụ mục đích nào khác ngoài việc tạo tệp
# [A] LOAD PACKAGES
import sqlite3, os
from sqlite3 import Error
# [B] DATABASE + SQL FILE
DBFILE = "users.db"
SQLFILE = "S1A_users.sql"
# [C] DELETE OLD DATABASE IF EXIST
if os.path.exists[DBFILE]:
os.remove[DBFILE]
# [D] IMPORT SQL
conn = sqlite3.connect[DBFILE]
with open[SQLFILE] as f:
conn.executescript[f.read[]]
conn.commit[]
conn.close[]
print["Database created!"]
8
BƯỚC 2] MÁY CHỦ FLASK
2A] KHỞI TẠO
S2_máy chủ. py
# [A] INIT
# [A1] LOAD MODULES
from flask import Flask, render_template, request, make_response
import sqlite3
# [A2] FLASK SETTINGS + INIT
HOST_NAME = "localhost"
HOST_PORT = 80
DBFILE = "users.db"
app = Flask[__name__]
# app.debug = True
Phần đầu tiên của tập lệnh máy chủ Flask sẽ khá dễ hiểu. Chúng tôi chỉ nhập các mô-đun cần thiết và chỉ định một số cài đặt
2B] SQLITE NHẬN NGƯỜI DÙNG
S2_máy chủ. py
# [B] HELPER - GET ALL USERS FROM DATABASE
def getusers[]:
conn = sqlite3.connect[DBFILE]
cursor = conn.cursor[]
cursor.execute["SELECT * FROM `users`"]
results = cursor.fetchall[]
conn.close[]
return results
Tiếp theo, chúng tôi có một chức năng trợ giúp đơn giản để kết nối với cơ sở dữ liệu người dùng và nhận tất cả người dùng
2C] NGƯỜI DÙNG ĐẦU RA TRONG BẢNG HTML
S2_máy chủ. py
# [C] DEMO PAGE - SHOW USERS IN TABLE
@app.route["/"]
def index[]:
# [C1] GET ALL USERS
users = getusers[]
# print[users]
# [C2] RENDER HTML PAGE
return render_template["S3_users.html", usr=users]
# [D] START
if __name__ == "__main__":
app.run[HOST_NAME, HOST_PORT]
Cuối cùng, thuyền trưởng rõ ràng đã phục vụ bạn một lần nữa. Nhận tất cả người dùng từ cơ sở dữ liệu và chuyển nó vào trang HTML để hiển thị
BƯỚC 3] DỮ LIỆU VÀO BẢNG HTML
mẫu/S3_users. html
{% for u in usr %}
{{ u[0] }}
{{ u[1] }}
{{ u[2] }}
{% endfor %}
Đó là tất cả những gì dành cho hướng dẫn và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn
SQLITE HOẠT ĐỘNG NHƯNG KHÔNG TUYỆT VỜI
Có, SQLite đơn giản và thuận tiện. Nó rất tốt cho việc học và hướng dẫn, nhưng không tốt cho các ứng dụng thực tế
- SQLite dựa trên tệp
- Trong thiết lập máy chủ cụm hoặc máy chủ đám mây, điều này trở thành một hạn chế – Chúng ta sẽ sao chép tệp cơ sở dữ liệu trên tất cả các máy chủ phải không?
- Hiệu suất cũng không tốt cho các bộ dữ liệu lớn
Vì vậy, vâng, xin đừng lười biếng. Tiếp tục nghiên cứu của bạn và chọn một cơ sở dữ liệu tốt hơn – MYSQL, MongoDB, PostgreSQL, MSSQL, v.v…
LIÊN KẾT và THAM KHẢO
- bình trăn
- SQLite
KẾT THÚC
Cảm ơn bạn đã đọc, và chúng tôi đã đi đến cuối. Tôi hy vọng rằng nó đã giúp bạn hiểu rõ hơn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc