TopDev

Xây dựng CMS với code Python và CSDL MySQL

minhu 📖 4 phút đọc

Để xây dựng một hệ thống quản lý nội dung (CMS) cơ bản bằng Python và MySQL, bạn có thể sử dụng Flask và SQLAlchemy. SQLAlchemy là một thư viện ORM (Object-Relational Mapping) giúp quản lý cơ sở dữ liệu dễ dàng hơn. Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cách tạo CMS cơ bản với Flask và MySQL.

1. Cài Đặt Môi Trường#

Trước tiên, bạn cần cài đặt Python, pip, và các thư viện cần thiết:

  • Cài đặt Python và pip (nếu chưa có): sudo apt update sudo apt install python3 python3-pip

  • Tạo và kích hoạt môi trường ảo: python3 -m venv mycmsenv source mycmsenv/bin/activate

  • Cài đặt các thư viện cần thiết: pip install Flask Flask-SQLAlchemy mysql-connector-python

2. Cài Đặt MySQL#

Cài đặt MySQL Server nếu chưa có:

sudo apt update sudo apt install mysql-server

Cấu hình MySQL: Đăng nhập vào MySQL và tạo cơ sở dữ liệu và người dùng:

sudo mysql -u root -p

Trong MySQL shell:

CREATE DATABASE mycmsdb; CREATE USER 'mycmsuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mycmsdb.* TO 'mycmsuser'@'localhost'; FLUSH PRIVILEGES; EXIT;

3. Tạo Cấu Trúc Dự Án#

Tạo cấu trúc thư mục cho dự án:

mycms/ │ ├── app.py ├── templates/ │ ├── index.html │ ├── add_post.html │ └── post.html └── static/ └── style.css

4. Viết Mã Nguồn#

  • app.py: Đây là file chính của ứng dụng Flask.

` from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy

app = Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://mycmsuser:mypassword@localhost/mycmsdb' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app)

class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False)

@app.before_first_request def create_tables(): db.create_all()

@app.route('/') def index(): posts = Post.query.all() return render_template('index.html', posts=posts)

@app.route('/post/int:post_id') def post(post_id): post = Post.query.get_or_404(post_id) return render_template('post.html', post=post)

@app.route('/add_post', methods=['GET', 'POST']) def add_post(): if request.method == 'POST': title = request.form['title'] content = request.form['content'] new_post = Post(title=title, content=content) db.session.add(new_post) db.session.commit() return redirect(url_for('index')) return render_template('add_post.html')

if name == 'main': app.run(debug=True) `

  • templates/index.html: Trang chính hiển thị danh sách bài viết.

`

CMS - Home

CMS Home

Add New Post `
  • templates/post.html: Trang hiển thị nội dung của một bài viết.

`

{{ post.title }}

{{ post.title }}

{{ post.content }}

Back to Home `
  • templates/add_post.html: Trang để thêm bài viết mới.

`

Add New Post

Add New Post






Back to Home `
  • static/style.css: Một file CSS đơn giản để làm đẹp trang web.

` body { font-family: Arial, sans-serif; margin: 20px; }

h1 { color: #333; }

a { color: #0066cc; }

form { margin-bottom: 20px; } `

5. Chạy Ứng Dụng#

Chạy ứng dụng Flask bằng lệnh:

python app.py

6. Truy Cập Ứng Dụng#

Mở trình duyệt web và truy cập địa chỉ http://127.0.0.1:5000/. Bạn sẽ thấy trang chính của CMS, nơi bạn có thể thêm bài viết mới và xem các bài viết hiện có.

7. Mở Rộng CMS#

Đây là một CMS cơ bản. Để mở rộng, bạn có thể thêm các tính năng như:

  • Quản lý người dùng: Đăng nhập, phân quyền, và quản lý tài khoản người dùng.

  • Chỉnh sửa và xóa bài viết: Thêm tính năng để chỉnh sửa và xóa các bài viết hiện có.

  • Cải thiện giao diện người dùng: Sử dụng các thư viện CSS hoặc JavaScript để làm đẹp và cải thiện trải nghiệm người dùng.

Với những bước trên, bạn đã tạo ra một hệ thống quản lý nội dung cơ bản bằng Python và MySQL. Bạn có thể tiếp tục mở rộng và cải thiện hệ thống theo nhu cầu của mình.

Bài liên quan trong #Python

✓ Đã sao chép link