Hệ thống Quản lý Đăng ký Khóa học Trực tuyến cho Sinh viên bằng Python, Vue và Django

Công nghệ và Môi trường Phát triển

Dự án này được phát triển bằng ngôn ngữ Python. Các thao tác trên mã nguồn chủ yếu được thực hiện trong PyCharm, lưu trữ các bảng và dữ liệu vào cơ sở dữ liệu MySQL để dễ dàng thao tác với dữ liệu. Dự án dựa trên nền tảng phát triển WEB. Ngôn ngữ phát triển: Python Framework: Flask và Django Phiên bản Python: python3.7.7 Cơ sở dữ liệu: mysql Công cụ cơ sở dữ liệu: Navicat Phần mềm phát triển: PyCharm Trình duyệt: Google Chrome Hệ thống này được phát triển bằng ngôn ngữ Python, sử dụng MySQL làm cơ sở dữ liệu backend, và được xây dựng bằng framework Django/Flask. Mục tiêu dự kiến đạt được:

  1. Học các kiến thức liên quan đến phát triển và thiết kế hệ thống cùng quy trình làm việc;
  2. Học sử dụng công cụ PYCHARM để chỉnh sửa mã nguồn phía trước và phía sau;
  3. Học sử dụng framework DJANGO/flask để phát triển hệ thống;
  4. Nắm vững phương pháp tạo và chỉnh sửa cơ sở dữ liệu bằng MySQL;

Thiết kế Hệ thống

Nghiên cứu thu thập và trực quan hóa dữ liệu phía trước, làm quen với framework Django, cú pháp lập trình Python. Vấn đề cần giải quyết là cách thiết kế một giao diện phía trước đơn giản và dễ sử dụng, giải quyết mối quan hệ giữa dữ liệu, điều chỉnh cấu trúc bảng dữ liệu. Hệ thống này sử dụng phương pháp thiết kế hướng đối tượng, là một phương pháp thiết kế dựa trên phân tích cấu trúc với trọng tâm là dữ liệu. Ý tưởng chính là đóng gói dữ liệu và các thao tác xử lý dữ liệu đó trong một cấu trúc dữ liệu gọi là lớp. Phương pháp này mô tả mô hình thế giới thực hợp lý, phù hợp hơn với cách tư duy của con người khi nhận thức thế giới. Lý thuyết cơ bản: Dựa trên phương pháp học kỹ thuật phần mềm làm hướng dẫn lý thuyết, tuân thủ nghiêm ngặt 8 giai đoạn trong vòng đời phần mềm: định nghĩa vấn đề, nghiên cứu khả thi, phân tích yêu cầu, thiết kế tổng thể, thiết kế chi tiết, mã hóa và kiểm thử đơn vị, kiểm thử tổng hợp và bảo trì phần mềm.

(1) Thiết kế cơ sở dữ liệu: Thiết kế một cấu trúc cơ sở dữ liệu hiệu quả, bao gồm thiết kế các bảng dữ liệu như thông tin người dùng, thông tin xe, thông tin đơn hàng, và mối quan hệ liên kết giữa các bảng dữ liệu. (2) Thiết kế kiến trúc hệ thống: Thiết kế kiến trúc tổng thể của hệ thống, bao gồm thiết kế trang phía trước, thiết kế phía sau, thiết kế giao diện. (3) Thiết kế trải nghiệm người dùng: Thiết kế giao diện thân thiện với người dùng, cải thiện trải nghiệm người dùng, bao gồm thiết kế quy trình cho các thao tác như đăng ký người dùng. (4) Thiết kế trang phía trước: Sử dụng framework Web của Python như Django hoặc Flask có thể phát triển nhanh các trang phía trước thân thiện với người dùng. Với sự phát triển nhanh chóng của khoa học dữ liệu, các công nghệ mới nổi như học máy, trí tuệ nhân tạo đã giúp cuộc sống của con người trở nên thuận tiện hơn. Ngày càng nhiều ứng dụng liên quan đến dữ liệu lớn, và các thuộc tính của dữ liệu lớn này, bao gồm số lượng, tốc độ, sự đa dạng, v.v., đều thể hiện sự phức tạp ngày càng tăng của dữ liệu lớn. Dự án này nhằm giải quyết vấn đề nguồn dữ liệu mà khoa học dữ liệu phụ thuộc vào, giúp các nhà khoa học dữ liệu thu thập nhiều dữ liệu có giá trị hơn.

Cách tiếp cận giải quyết

Sử dụng Navicat hoặc các công cụ khác để tạo cơ sở dữ liệu có tên tương ứng trong mysql và nhập tệp sql của dự án; Sử dụng PyCharm để nhập dự án, sửa đổi cấu hình và chạy dự án; Thay đổi cấu hình cơ sở dữ liệu trong tệp cấu hình config.ini của dự án thành cấu hình của riêng bạn, sau đó chạy; Hệ thống này chọn ngôn ngữ lập trình. Pymysql là một thư viện Python đóng gói driver MySQL, cho phép Python kết nối với MySQL. Python DB-API là giao diện truy cập cơ sở dữ liệu thống nhất của Python, ngăn ngừa sự hỗn loạn của chương trình giao diện khi sử dụng các cơ sở dữ liệu khác nhau do sự khác biệt về công nghệ cơ sở dữ liệu ở lớp dưới. Thông qua việc thiết kế hệ thống này, có thể cải thiện khả năng lập trình, củng cố sự hiểu biết và ứng dụng kiến thức đã học.

  1. Môi trường chạy: python3.7/python3.8.
  2. Môi trường IDE: pycharm+mysql5.7/8.0+;
  3. Công cụ cơ sở dữ liệu: Navicat11
  4. Môi trường phần cứng: windows11/10 8GB RAM trở lên
  5. Cơ sở dữ liệu: MySql 5.7/8.0+; Sau khi chạy thành công, nhập vào trình duyệt: http://localhost:8080/tên_dự_án

Phần mã lõi Python-Flask

import os
from flask import Blueprint
from utils.file_validator import validate_python_file

main_blueprint = Blueprint('main', __name__, static_folder='static')

import_statement = 'from . import  '
view_collection = set()
excluded_files = [
    # "common.py",
    "__init__.py"
]
directory = os.path.join(os.getcwd(), "api/main")
directory = directory.replace("test_units/", '') if "test_units/" in directory else directory
for file in os.listdir(directory):
    if file not in excluded_files and validate_python_file(file):
        current_module = file.split(".", 1)[0]
        view_collection.add(current_module)
import_statement += ','.join(view_collection)
print(import_statement)
exec(import_statement)

Phần mã lõi Python-Django

# coding:utf-8
__author__ = "developer"

from django.http import JsonResponse

from .user_models import User
from utils.response_codes import *
from utils.authentication import Auth
import utils.messages as msg


def user_login(request):
    if request.method in ["POST", "GET"]:
        response = {'code': success_code, "msg": msg.success_code}
        request_data = request.session.get("request_data")
        if request_data.get('role') is not None:
            del request_data['role']
        user_data = User.find_by_parameters(User, User, request_data)
        if not user_data:
            response['code'] = authentication_error_code
            response['msg'] = msg.authentication_error_code
            return JsonResponse(response)

        request_data['id'] = user_data[0].get('id')
        return Auth.authenticate(Auth, User, request_data)


def user_register(request):
    if request.method in ["POST", "GET"]:
        response = {'code': success_code, "msg": msg.success_code}
        request_data = request.session.get("request_data")

        error = User.create_by_request(User, User, request_data)
        if error is not None:
            response['code'] = operation_error_code
            response['msg'] = error
        return JsonResponse(response)

Giải thích cấu trúc dự án Django

Cấu trúc dự án ban đầu của chúng ta bao gồm năm tệp: manage.py: Phím tắt cho công cụ dòng lệnh django-admin. Nó được sử dụng để chạy các lệnh quản trị liên quan đến dự án của chúng ta. Chúng ta sẽ sử dụng nó để chạy máy chủ phát triển, chạy kiểm thử, tạo di chuyển, v.v. init.py: Tệp rỗng này cho Python biết rằng thư mục này là một gói Python. settings.py: Tệp này chứa tất cả các cấu hình của dự án. Chúng ta sẽ liên tục đề cập đến tệp này! urls.py: Tệp này chịu trách nhiệm ánh xạ các tuyến đường và đường dẫn trong dự án của chúng ta. Ví dụ, nếu bạn muốn hiển thị một số nội dung khi truy cập URL /about/, bạn phải ánh xạ nó ở đây trước. wsgi.py: Tệp này là giao diện cổng đơn giản để triển khai. Bạn có thể tạm thời không quan tâm đến nội dung của nó, chỉ cần để nó ở đó. Django có một máy chủ mạng đơn giản. Rất tiện lợi trong quá trình phát triển, vì vậy chúng ta không cần cài đặt bất kỳ phần mềm nào khác để chạy dự án trên máy cục bộ. Chúng ta có thể kiểm tra nó bằng cách thực thi lệnh: python manage.py runserver myproject/

Thẻ: python vue Django mysql Flask

Đăng vào ngày 1 tháng 6 lúc 11:11