实现一个python选课系统实例

  下面介绍一下自己写的python程序,主要是的知识点为sys、os、json、pickle的模块应用,python程序包的的使用,以及关于类的使用。

  下面是我的程序目录:

          实现一个python选课系统实例

bin是存放一些执行文件course.py下面是这个文件的内容:

import sys,os#程序主目录BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))print(BASE_DIR)#添加环境变量sys.path.append(BASE_DIR)from core import mainif __name__ == '__main__':    a =main.Run()    a.interactive()

这个文件是对os,sys模块的应用;

立即学习“Python免费学习笔记(深入)”;

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

  这里的os.path.abspath(__file__)是查看当前文件的所在位置。例如:

  D:python项目选课系统course_systembincourse.py

  这里的os.path.abspath是上一级目录例如:print(BASE_DIR)

  D:python项目选课系统course_system

sys.path.append(BASE_DIR) 括号里面是模块引用的地址,我们可以理解把这个模块得知设置成环境变量。from core import main  导入core包中的main文件这里是core包中udi.py文件
import hashlibimport timedef create_md():    m = hashlib.md5()    m.update(bytes(str(time.time()),encoding="utf-8"))    return m.hexdigest()

在python中hashlib提供了常见的摘要算法,如MD5,SHA1等等。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。为了给学生生成一个随机不重复的uid。

 

这里是core包中main.py文件内容

import sys,os         import json      #这里说一下json这个模块,java之中也有应用,所以一些数据也可以给java去用。import pickle     from bin import coursefrom core import uid#数据库文件路径db_DIR = course.BASE_DIR + r"db"db_school = db_DIR + r"school"db_teacher = db_DIR + r"teacher"db_student = db_DIR + r"student"db_classes = db_DIR + r"classes"db_course = db_DIR + r"course"db_admin = db_DIR + r"admin"db_class_record = db_DIR + r"class_record"db_class_grade = db_DIR + r"class_grade"#基础类,主要包括文件的读写操作class Baseclass(object):  #在python3中全部是新式类,但是建议还是这样写。在python2中存在经典类和新式类;例如:class Baseclass: 这种在python中是经典类,而class Baseclass(object):这样是新式类。有关它们的区别,我会在下一篇博客中具体说明。    def __init__(self):        pass    def save(self,type,dict):        filename = uid.create_md()        dict['uid'] = filename        file_path = "%s%s" %(db_DIR,type)        ab_file = "%s%s" %(file_path,filename)        if os.path.isdir(file_path):            with open(ab_file,"wb") as f:                f.write(pickle.dumps(dict))                if True:                    print(                    "-------",type,"创建成功","-------")                    for key in dict:                        print(key,":t",dict[key])    def seek_list(self,type,list):        filename = uid.create_md()        file_path = "%s%s" %(db_DIR,type)        ab_file = "%s%s" %(file_path,filename)        if os.path.isdir(file_path):            with open(ab_file,"wb") as f:                f.write(pickle.dumps(list))                if True:                    print(                    "-------",type,"创建成功","-------")                    for i in list:                        for key in i:                            print(key,i[key])                        print("n")        return True    def open(self,type):        all_data = []        db_path = "%s%s" %(db_DIR,type)        for i in os.listdir(db_path):            if os.path.isfile(os.path.join(db_path,i)):                db_file = os.path.join(db_path,i)                with open(db_file,"rb") as f:                    file_dict = pickle.load(f)                    all_data.append(file_dict)        return all_data#admin类class Admin(Baseclass):    def __init__(self):        Baseclass.__init__(self)    def create_school(self):        school_dict = {}        school_name = input("校名:")        school_address = input("地址:")        s1 = School(school_name, school_address)        school_dict["校名"] = s1.school_name        school_dict["地址"] = s1.school_address        Baseclass.save(self, "school", school_dict)    def create_teacher(self):        teacher_dict = {}        teacher_name = input("讲师姓名:")        teacher_salary = input("讲师工资:")        teacher_school = input("所属学校:")        t1 = Teacher(teacher_name, teacher_salary, teacher_school)        teacher_dict["姓名"] = t1.teacher_name        teacher_dict["工资"] = t1.teacher_salary        teacher_dict["所属学校"] = t1.teacher_school        print(teacher_dict)        Baseclass.save(self, "teacher", teacher_dict)    def create_student(self):        student_dict = {}        student_name = input("学员姓名:")        student_sex = input("学员性别:")        student_school = input("所属学校:")        student_classes = input("学员班级:")        st1 = Student(student_name, student_sex, student_school, student_classes)        student_dict["姓名"] = st1.student_name        student_dict["性别"] = st1.student_sex        student_dict["学校"] = st1.student_school        student_dict["班级"] = st1.student_classes        Baseclass.save(self, "student", student_dict)    def create_course(self):        course_dict = {}        course_name = input("课程名:")        course_period = input("周期:")        course_prices = input("价格:")        c1 = Course(course_name, course_period, course_prices)        course_dict["课程名"] = c1.course_name        course_dict["周期"] = c1.course_period        course_dict["价格"] = course_prices        Baseclass.save(self, "course", course_dict)    def create_classes(self):        classes_dict = {}        classes_name = input("班级名:")        classes_teachter = input("负责讲师:")        classes_course = input("所学课程:")        cs1 = Classes(classes_name, classes_teachter, classes_course)        classes_dict["班级名"] = cs1.classes_name        classes_dict["负责讲师"] = cs1.classes_teacher        classes_dict["课程"] = cs1.classes_course        Baseclass.save(self, "classes", classes_dict)#School类class School(Baseclass):    def __init__(self,school_name,school_address):        Baseclass.__init__(self)        self.school_name = school_name        self.school_address = school_address#teacher类class Teacher(Baseclass):    def __init__(self,teacher_name,teacher_salary,teacher_school):        Baseclass.__init__(self)        self.teacher_name = teacher_name        self.teacher_salary = teacher_salary        self.teacher_school = teacher_school    def create_class_record(self):        class_record = []        student_school = input("选择学校:")        student_classes = input("选择班级:")        student_times = input("课次:")        student_list = Baseclass.open(self,"student")        for i in student_list:            if i["学校"] == student_school and i["班级"] == student_classes:                student_name = i["姓名"]                student_status = input("%s 上课情况:" % student_name)                i["上课情况"] = student_status                i["课次"] = student_times                class_record.append(i)        Baseclass.seek_list(self,"class_record",class_record)    def create_class_grade(self):        class_grade = []        student_school = input("选择学校:")        student_classes = input("选择班级:")        student_times = input("课次:")        student_list = Baseclass.open(self,"student")        for i in student_list:            if i["学校"] == student_school and i["班级"] == student_classes:                student_name = i["姓名"]                student_grade = input("%s 成绩:" % student_name)                i["成绩"] = student_grade                i["课次"] = student_times                class_grade.append(i)        Baseclass.seek_list(self,"class_grade",class_grade)    def teacher_view_grade(self):        grade_list = []        student_school = input("校名:")        student_class = input("班级:")        student_times = input("课次:")        class_grade_list = Baseclass.open(self, "class_grade")        for i in class_grade_list:            for j in i:                if j["学校"] == student_school and j["班级"] == student_class and j["课次"] == student_times:                    grade_list.append(j)        for i in grade_list:            for key in i:                print(key,i[key])            print("n")    def tacher_view_record(self):        record_list = []        student_school = input("校名:")        student_class = input("班级:")        student_times = input("课次:")        class_record_list = Baseclass.open(self, "class_record")        for i in class_record_list:            for j in i:                if j["学校"] == student_school and j["班级"] == student_class and j["课次"] == student_times:                    record_list.append(j)        for i in record_list:            for key in i:                print(key,i[key])            print("n")#classes类class Course(Baseclass):    def __init__(self,course_name,course_period,course_prices):        Baseclass.__init__(self)        self.course_name = course_name        self.course_period = course_period        self.course_prices = course_prices#student类class Student(Baseclass):    def __init__(self,student_name,student_sex,student_school,student_classes):        Baseclass.__init__(self)        self.student_name = student_name        self.student_sex = student_sex        self.student_school = student_school        self.student_classes = student_classes    def student_registered(self):        student_dict = {}        print("欢迎进入学生注册系统")        student_name = input("注册姓名:")        student_sex = input("性别:")        student_school = input("学校:")        student_class = input("班级:")        st1 = Student(student_name,student_sex,student_school,student_class)        student_dict["姓名"] = st1.student_name        student_dict["性别"] = st1.student_sex        student_dict["学校"] = st1.student_school        student_dict["班级"] = st1.student_classes        Baseclass.save(self, "student", student_dict)    def student_pay_fees(self):        pass    def student_view_grade(self):        student_school = input("校名:")        student_class = input("班级:")        student_times = input("课次:")        student_name = input("姓名:")        class_grade_list = Baseclass.open(self,"class_grade")        for i in class_grade_list:            for j in i:                if j["学校"] == student_school and j["班级"] == student_class and j["课次"] == student_times                     and j["姓名"] == student_name:                    for key in j:                        print(key,j[key])                    print("n")    def student_view_record(self):        student_school = input("校名:")        student_class = input("班级:")        student_times = input("课次:")        student_name = input("姓名:")        class_record_list = Baseclass.open(self,"class_record")        for i in class_record_list:            for j in i:                if j["学校"] == student_school and j["班级"] == student_class and j["课次"] == student_times                     and j["姓名"] == student_name:                    for key in j:                        print(key,j[key])                    print("n")#课程类class Classes(Baseclass):    def __init__(self,classes_name,classes_teachter,classes_course):        Baseclass.__init__(self)        self.classes_name = classes_name        self.classes_teacher = classes_teachter        self.classes_course = classes_course#管理员视图,继承Admin类class Admin_view(Admin):    def __init__(self):        Admin.__init__(self)    def auth(self,username,password):        admin_file = "%s/%s.json" %(db_admin,username)        if os.path.isfile(admin_file):            with open(admin_file, 'r') as f:                admin_data = json.load(f)            if admin_data["name"] == username and admin_data["password"] == password:                return True            else:                print("用户名或密码错误")    def login(self):        menu = u'''        ------- 欢迎进入管理视图 ---------            33[32;1m 1.  校区管理            2.  讲师管理            3.  学员管理            4.  课程管理            5.  返回            33[0m'''        menu_dic = {            '1': Admin_view.school_manager,            '2': Admin_view.teacher_manager,            '3': Admin_view.student_manager,            '4': Admin_view.course_manager,            '5': "logout",        }        username = input("输入用户名:").strip()        password = input("输入密码:").strip()        auth = Admin_view.auth(self,username,password)        if auth:            exit_flag = False            while not exit_flag:                print(menu)                option = input("请选择:").strip()                if option in menu_dic:                    if int(option) == 5:                        exit_flag = True                    else:                        print(menu_dic[option])                        menu_dic[option](self)                else:                    print("33[31;1m输入错误,重新输入33[0m")    def school_manager(self):        exit_flag = False        while not exit_flag:            print("""                ------- 欢迎进入校区管理 ---------                33[32;1m1.  创建校区                2.  创建班级                3.  返回                33[0m            """)            option = input("请选择:").strip()            if int(option) == 1:                Admin.create_school(self)            elif int(option) == 2:                Admin.create_classes(self)            else:                exit_flag = True    def teacher_manager(self):        exit_flag = False        while not exit_flag:            print("""                ------- 欢迎进入讲师管理 ---------                33[32;1m 1.  创建讲师                2.  ...                3.  返回                33[0m            """)            option = input("请选择:").strip()            if int(option) == 1:                Admin.create_teacher(self)            elif int(option) == 2:                print("扩展中")            else:                exit_flag = True    def student_manager(self):        exit_flag = False        while not exit_flag:            print("""                ------- 欢迎进入学员管理 ---------                33[32;1m 1.  创建学员                2.  ...                3.  返回                33[0m            """)            option = input("请选择:").strip()            if int(option) == 1:                Admin.create_student(self)            elif int(option) == 2:                print("扩展中")            else:                exit_flag = True    def course_manager(self):        exit_flag = False        while not exit_flag:            print("""                ------- 欢迎进入课程管理 ---------                33[32;1m 1.  创建课程                2.  ...                3.  返回                33[0m            """)            option = input("请选择:").strip()            if int(option) == 1:                Admin.create_course(self)            elif int(option) == 2:                print("扩展中")            else:                exit_flag = True#讲师视图类,继承Teacher类class Teacher_view(Teacher,):    def __init__(self,teacher_name,teacher_salary,teacher_school):        Teacher.__init__(self,teacher_name,teacher_salary,teacher_school)    def login(self):        menu = u'''        ------- 欢迎进入讲师视图 ---------            33[32;1m  1.  创建上课记录            2.  创建学员成绩            3.  查看学员上课记录            4.  查看学员成绩            5.  返回            33[0m'''        menu_dic = {            '1': Teacher.create_class_record,            '2': Teacher.create_class_grade,            '3': Teacher.tacher_view_record,            '4': Teacher.teacher_view_grade,            '5': "logout",        }        if True:            exit_flag = False            while not exit_flag:                print(menu)                option = input("请选择:").strip()                if option in menu_dic:                    if int(option) == 5:                        exit_flag = True                    else:                        print(menu_dic[option])                        menu_dic[option](self)                else:                    print("33[31;1m输入错误,重新输入33[0m")#学员视图类,继承Student类class Student_view(Student):    def __init__(self,student_name,student_sex,student_school,student_classes):        Student.__init__(self,student_name,student_sex,student_school,student_classes)    def login(self):        menu = u'''        ------- 欢迎进入学生管理视图 ---------        33[32;1m 1.  注册        2.  交学费        3.  查看上课记录        4.  查看作业成绩        5.  返回        33[0m'''        menu_dic = {            '1': Student.student_registered,            '2': Student.student_pay_fees,            '3': Student.student_view_record,            '4': Student.student_view_grade,            '5': "logout",        }        if True:            exit_flag = False            while not exit_flag:                print(menu)                option = input("请选择:").strip()                if option in menu_dic:                    if int(option) == 5:                        exit_flag = True                    else:                        menu_dic[option](self)                else:                    print("33[31;1m输入错误,重新输入33[0m")#程序交互类class Run(object):    def __init__(self):        pass    def interactive(self):        menu = u'''        ------- 欢迎进入选课系统 ---------        33[32;1m 1.  学生视图        2.  讲师视图        3.  管理视图        4.  退出        33[0m'''        menu_dic = {            '1': Student_view,            '2': Teacher_view,            '3': Admin_view,            # '4': logout,        }        exit_flag = False        while not exit_flag:            print(menu)            option_view = input("请选择视图:").strip()            if option_view in menu_dic:                if int(option_view) == 4:                    exit_flag = True                else:                    menu_dic[option_view].login(self)            else:                print("33[31;1m输入错误,重新输入33[0m")

实现一个python选课系统实例

写程序的的时候最好先把一个框架先写出来,最后再往里边填写东西。

这是程序执行效果

实现一个python选课系统实例

不在过多演示了

因为毕竟是刚刚学习python,这里也借鉴了很多网友的代码,所以也非诚感谢这些人。

 

以上就是实现一个python选课系统实例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/186686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 11:12:23
下一篇 2025年11月1日 11:19:49

相关推荐

  • Chainbase($C币)是什么?怎么样?Chainbase全球最大全链数据网络的完整指南

    目录 什么是Chainbase($C代币)?Chainbase 为区块链数据和 AI 解决了哪些问题1. 区块链数据碎片化的挑战2. 缺乏人工智能数据标准3.集中数据控制和访问问题4.可扩展性和性能限制Chainbase Genesis:超数据网络背后的故事Chainbase 功能:四层架构和 AI…

    2025年12月8日 好文分享
    000
  • 别再当韭菜了!虚拟货币量化成交实战课

    本文旨在深入浅出地介绍虚拟货币量化交易,帮助您理解其核心理念与运作方式。我们将通过分步讲解,带您了解如何从零开始搭建一个基础的量化交易流程,从而摆脱情绪化交易的困扰,向更系统、更策略化的交易方式迈进。 2025主流加密货币交易所官网注册地址推荐: 欧易OKX: Binance币安: Gateio芝麻…

    2025年12月8日
    000
  • HaasOnline Python进阶玩法:自定义AI交易脚本

    本文将详细阐述在HaasOnline平台上如何运用Python进行AI交易脚本的自定义开发。文章会引导您从环境准备开始,逐步讲解自定义脚本的核心步骤,包括理解脚本结构、定义交易逻辑、编写代码、回测优化以及最终部署。同时,本文还会介绍如何利用GitHub上的开源策略库,来加速您的学习与开发进程,帮助您…

    2025年12月8日
    000
  • 比特币定投教程|每月自动购买的4种智能方法

    本文将详细阐述比特币定投的概念,并为您解析实现每月自动购买的四种主流智能方法。通过本文的引导,您将学会如何设置自动化投资流程,并掌握设置价格波动提醒的技巧,从而更科学地进行长期资产配置。 2025主流加密货币交易所官网注册地址推荐: 欧易OKX: Binance币安: Gateio芝麻开门: 火币h…

    2025年12月8日
    000
  • 【量化交易入门】加密货币自动搬砖 年化300%的Arbitrage Bot搭建教程

    加密货币市场因其波动性,为量化交易提供了机会。其中,“搬砖”,即套利(Arbitrage),是一种常见的策略,旨在利用不同交易平台之间同一资产的价格差异获取收益。本文将介绍如何通过搭建一个自动化的套利机器人(Arbitrage Bot)来实现这一目标,并探讨标题中提及的年化300%潜在收益的可能性以…

    2025年12月8日
    000
  • 交易平台API对接软件合集 职业交易员绝不外传的赚钱工具箱

    对于追求效率和策略执行精度的职业交易员来说,交易平台API对接软件构成了他们不愿轻易示人的“赚钱工具箱”。这类软件通过直接连接交易平台的应用程序接口(API),赋予交易员高度的自动化和定制化能力。它们不仅是执行交易的工具,更是实现复杂策略、进行深度市场分析的关键。本文旨在介绍这类工具的基本概念、核心…

    2025年12月8日
    000
  • AI量化交易年度横评 惊人回报率!机器人自动交易的秘密全公开

    本文将深入探讨AI量化交易背后常被提及的“惊人回报率”的来源,揭开机器人自动交易的核心秘密。我们将详细讲解其工作流程,帮助用户理解整个操作过程,并结合网络上的综合评价,对当前主流的AI量化交易平台进行一个横向评述,为用户提供一个客观的参考视角。 2025主流加密货币交易所官网注册地址推荐: 欧易OK…

    2025年12月8日
    000
  • 2025量化交易神技:Python自动搬砖策略,日赚5%稳如狗!

    数字资产市场以其高波动性吸引着全球目光。在这种环境下,如何稳定地捕捉收益成为了无数参与者追求的目标。量化交易,凭借其依赖数据、算法驱动的特性,正成为应对市场挑战的利器。特别是在2025年这个充满无限可能的时间节点,结合强大的编程语言python构建自动化的“搬砖”策略,即利用不同交易平台之间的微小价…

    2025年12月8日
    000
  • B安交易所苹果手机版APP官方最新安装链接

    B安交易所无疑是举足轻重的存在。对于使用苹果手机的用户来说,如何安全、便捷地安装B安交易所的APP,是进入这个数字资产大门的关键一步。本文将提供B安交易所苹果手机版APP的官方最新安装链接,并详细指导安装过程,确保您能顺利开启数字货币之旅。请务必仔细阅读以下内容,因为任何疏忽都可能导致安装失败或安全…

    2025年12月8日
    000
  • 欧易账户转账记录能导出吗?如何查询历史转账的详细状态?

    是的,用户可以在欧易交易所(OKX)导出账户转账记录。具体操作为:1. 登录账户后点击主界面上方“资产”选项;2. 选择“交易记录”或“资金流水”;3. 点击右上角“导出”按钮并选择时间范围和文件格式(如CSV或Excel);4. 系统生成文件并通过电子邮件发送给用户,邮件可能因系统负载需几分钟送达…

    2025年12月8日
    000
  • 詹姆斯·永利(James Wynn)的兴衰,詹姆斯·永利(James Wynn)是一名超流利鲸鱼,将300万美元变成了1亿美元,一周之内损失了

    “我自3月份起开始涉足期货交易。在这之前,期货交易或者任何衍生品交易对我来说都是全新的领域,我仅专注于模因交易。” 以下是使用Python编写的一个简单感知机模型的代码。此模型适用于二进制分类任务。 import numpy as npclass Perceptron:””” 一个简单的二进制分类模…

    2025年12月8日
    000
  • AIOZ网络启动了AIOZ AI,这是第一个分散的AI模型和数据集市场

    大安塞(mahe island) – 塞舌尔(aioz)网路宣布推出aioz ai,这是首个完全基于depin的去中心化ai模型与数据集市场。 塞舌尔大安塞(Grand Anse) – 2025年3月27日 – 领先的区块链公司Aioz Network正在推动De…

    2025年12月8日
    000
  • 加密货币量化交易初学者指南:常见策略、优劣势风险介绍

    目录 什么是加密量化交易?历史与演变从自由裁量到数据驱动交易的转变核心概念加密量化交易的关键组成部分数据收集和处理算法开发回测策略执行系统加密量化交易中的常见策略均值回归动量交易统计套利机器学习模型优势与风险优势风险和局限性案例分析:假设CET代币交易场景场景设置策略开发回测结果经验教训加密量化交易…

    2025年12月7日
    000
  • 什么是Allora Network?如何运作?背后的愿景介绍

    目录 什么是Allora Network?Allora Network背后的愿景Allora Network如何运作:去中心化AI生态系统上下文感知推理合成:自我改进的引擎模块化主题:专业化和可扩展性激励结构和代币经济学开源和开发者工具隐私、安全和治理现实世界应用和影响挑战和未来之路结论常见问题AL…

    2025年12月7日
    000
  • Linux命令行中wc命令的实用技巧

    wc命令可统计文件的行数、单词数、字符数和字节数,常用-l统计行数,如wc -l /etc/passwd查看用户数量;结合grep可分析日志,如grep “error” logfile.txt | wc -l统计错误行数;-w统计单词数,-m统计字符数(含空格换行),-c统计…

    2025年12月6日 运维
    000
  • VSCode入门:基础配置与插件推荐

    刚用VSCode,别急着装一堆东西。先把基础设好,再按需求加插件,效率高还不卡。核心就三步:界面顺手、主题舒服、功能够用。 设置中文和常用界面 打开软件,左边活动栏有五个图标,点最下面那个“扩展”。搜索“Chinese”,装上官方出的“Chinese (Simplified) Language Pa…

    2025年12月6日 开发工具
    000
  • VSCode性能分析与瓶颈诊断技术

    首先通过资源监控定位异常进程,再利用开发者工具分析性能瓶颈,结合禁用扩展、优化语言服务器配置及项目设置,可有效解决VSCode卡顿问题。 VSCode作为主流的代码编辑器,虽然轻量高效,但在处理大型项目或配置复杂扩展时可能出现卡顿、响应延迟等问题。要解决这些性能问题,需要系统性地进行性能分析与瓶颈诊…

    2025年12月6日 开发工具
    000
  • VSCode的悬浮提示信息可以自定义吗?

    可以通过JSDoc、docstring和扩展插件自定义VSCode悬浮提示内容,如1. 添加JSDoc或Python docstring增强信息;2. 调整hover延迟与粘性等显示行为;3. 使用支持自定义提示的扩展或开发hover provider实现深度定制,但无法直接修改HTML结构或手动编…

    2025年12月6日 开发工具
    000
  • Linux文件系统readlink命令使用方法

    readlink命令用于解析符号链接指向的实际路径,基本用法为readlink 文件名,-f选项可递归解析为绝对路径,常用于脚本中获取真实文件位置,如readlink -f “$0″确定脚本自身路径,结合which命令可追踪命令真实执行文件,-n、-q、-s等选项支持静默处理…

    2025年12月6日 运维
    000
  • VSCode后端:Flask应用调试指南

    答案:配置VSCode调试Flask需安装Flask、编写入口文件、在launch.json中设置调试参数,然后设断点并启动调试会话。具体步骤包括创建launch.json文件并配置program、env和args等选项,确保使用正确Python解释器,避免端口占用,最后通过运行和调试面板启动应用,…

    2025年12月6日 开发工具
    000

发表回复

登录后才能评论
关注微信