国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python基于Tkinter實現(xiàn)學(xué)生信息管理系統(tǒng)

這篇具有很好參考價值的文章主要介紹了python基于Tkinter實現(xiàn)學(xué)生信息管理系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、功能點介紹(畢設(shè)設(shè)計)

1.添加學(xué)生成績:管理員可以在系統(tǒng)中添加學(xué)生的成績信息,包括學(xué)生姓名、學(xué)號、課程名稱、成績等。
2.刪除學(xué)生成績:管理員可以根據(jù)學(xué)生的學(xué)號或者姓名刪除學(xué)生的成績信息。
3.修改學(xué)生成績:管理員可以修改學(xué)生的成績信息,包括學(xué)生姓名、學(xué)號、課程名稱、成績等。
4.查詢學(xué)生成績:管理員可以根據(jù)學(xué)生的學(xué)號或者姓名查詢學(xué)生的成績信息,包括學(xué)生姓名、學(xué)號、課程名稱、成績等。
該系統(tǒng)可以幫助學(xué)校管理學(xué)生成績信息,方便教師和學(xué)生查詢自己的成績情況,也可以幫助學(xué)校更加科學(xué)地進(jìn)行教學(xué)管理。

二、登錄頁面代碼介紹

新建一個Loginpage.py文件

#!/usr/bin/env python
# encoding: utf-8
"""
@author: 拾壹
@software: PyCharm
@file: LoginPage.py
@time: 2023/3/7 13:20
"""
import tkinter as tk
from tkinter import messagebox
from db import db
from MinaPage import MianPage


class LoginPage(object):
    def __init__(self, master):
        self.root = master
        self.root.geometry('300x180')
        self.root.title('登錄頁面')

        self.username = tk.StringVar()
        self.password = tk.StringVar()

        self.page = tk.Frame(root)
        self.page.pack()
        tk.Label(self.page).grid(row=0, column=0)

        tk.Label(self.page, text='賬號:').grid(row=1, column=1, pady=10)
        tk.Entry(self.page, textvariable=self.username).grid(row=1, column=2)

        tk.Label(self.page, text='密碼:').grid(row=2, column=1, pady=10)
        tk.Entry(self.page, textvariable=self.password).grid(row=2, column=2)
        tk.Button(self.page, text='登錄', command=self.login).grid(row=3, column=1, pady=10)
        tk.Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=2, pady=10)

    def login(self):
        name = self.username.get()
        pwd = self.password.get()
        flag, message = db.check_login(name, pwd)
        if flag:
            # 銷毀當(dāng)前頁面
            self.page.destroy()
            MianPage(self.root)
        else:
            messagebox.showwarning(title='警告', message=message)


if __name__ == '__main__':
    root = tk.Tk()
    LoginPage(master=root)
    root.mainloop()

三、增刪改查頁面設(shè)計

新建一個MinaPage.py文件

#!/usr/bin/env python
# encoding: utf-8
"""
@author: 拾壹
@software: PyCharm
@file: MinaPage.py
@time: 2023/3/7 22:08
"""
import tkinter as tk

from views import AboutFrame, ChangeFrame, DeleteFrame, SearchFrame, InsertFrame


class MianPage:
    def __init__(self, master: tk.Tk):
        self.root = master
        self.root.title('學(xué)生信息管理系統(tǒng)')
        self.root.geometry('600x400')
        self.create_page()

    def create_page(self):
        self.about_frame = AboutFrame(self.root)
        self.chang_frame = ChangeFrame(self.root)
        self.insert_frame = InsertFrame(self.root)
        self.search_frame = SearchFrame(self.root)
        self.delete_frame = DeleteFrame(self.root)

        menubar = tk.Menu(self.root)
        menubar.add_command(label='錄入', command=self.show_insert)
        menubar.add_command(label='查詢', command=self.show_select)
        menubar.add_command(label='刪除', command=self.show_delete)
        menubar.add_command(label='修改', command=self.show_change)
        menubar.add_command(label='關(guān)于', command=self.show_about)
        self.root['menu'] = menubar

    def show_about(self):
        self.insert_frame.pack_forget()
        self.search_frame.pack_forget()
        self.delete_frame.pack_forget()
        self.chang_frame.pack_forget()
        self.about_frame.pack()

    def show_change(self):
        self.insert_frame.pack_forget()
        self.search_frame.pack_forget()
        self.delete_frame.pack_forget()
        self.chang_frame.pack()
        self.about_frame.pack_forget()

    def show_select(self):
        self.insert_frame.pack_forget()
        self.search_frame.pack()
        self.delete_frame.pack_forget()
        self.chang_frame.pack_forget()
        self.about_frame.pack_forget()

    def show_delete(self):
        self.insert_frame.pack_forget()
        self.search_frame.pack_forget()
        self.delete_frame.pack()
        self.chang_frame.pack_forget()
        self.about_frame.pack_forget()

    def show_insert(self):
        self.insert_frame.pack()
        self.search_frame.pack_forget()
        self.delete_frame.pack_forget()
        self.chang_frame.pack_forget()
        self.about_frame.pack_forget()


if __name__ == '__main__':
    root = tk.Tk()
    MianPage(root)
    root.mainloop()

四、視圖邏輯管理

新建一個views.py文件

#!/usr/bin/env python
# encoding: utf-8
"""
@author: 拾壹
@software: PyCharm
@file: views.py
@time: 2023/3/8 13:57
"""
import tkinter as tk
from tkinter import ttk

from db import db


class AboutFrame(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        tk.Label(self, text='關(guān)于作品:tkinter制作').pack()
        tk.Label(self, text='關(guān)于作者:拾壹').pack()
        tk.Label(self, text='關(guān)于版權(quán):開源').pack()


class ChangeFrame(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.name = tk.StringVar()
        self.math = tk.StringVar()
        self.chinese = tk.StringVar()
        self.english = tk.StringVar()
        self.status = tk.StringVar()
        tk.Label(self).grid(row=0, pady=10)
        tk.Label(self, text='姓 名:').grid(row=1, column=1, pady=10)
        tk.Entry(self, textvariable=self.name).grid(row=1, column=2, pady=10)

        tk.Label(self, text='數(shù) 學(xué):').grid(row=2, column=1, pady=10)
        tk.Entry(self, textvariable=self.math).grid(row=2, column=2, pady=10)

        tk.Label(self, text='語 文:').grid(row=3, column=1, pady=10)
        tk.Entry(self, textvariable=self.chinese).grid(row=3, column=2, pady=10)

        tk.Label(self, text='英 語:').grid(row=4, column=1, pady=10)
        tk.Entry(self, textvariable=self.english).grid(row=4, column=2, pady=10)

        tk.Button(self, text='查詢',command=self.search_user).grid(row=5,column=1,pady=10)
        tk.Button(self, text='修改', command=self.change_user).grid(row=5, column=2, pady=10)


    def search_user(self):
        flag, info = db.search_by_useranme(self.name.get())
        if flag:
            self.name.set(info['name'])
            self.math.set(info['math'])
            self.chinese.set(info['chinese'])
            self.english.set(info['english'])
            self.status.set('數(shù)據(jù)查詢成功')
        else:
            self.status.set(info)

    def change_user(self):
        stu = {"name": self.name.get(),
               "math": self.math.get(),
               "chinese": self.chinese.get(),
               "english": self.english.get()}
        self.name.set('')  # 把名字重置為空
        db.update(stu)
        self.status.set('修改數(shù)據(jù)成功')

class InsertFrame(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        # tk.Label(self, text='插入').pack()
        self.name = tk.StringVar()
        self.math = tk.StringVar()
        self.chinese = tk.StringVar()
        self.english = tk.StringVar()
        self.status = tk.StringVar()
        self.create_page()

    def create_page(self):
        tk.Label(self).grid(row=0, pady=10)
        tk.Label(self, text='姓 名:').grid(row=1, column=1, pady=10)
        tk.Entry(self, textvariable=self.name).grid(row=1, column=2, pady=10)

        tk.Label(self, text='數(shù) 學(xué):').grid(row=2, column=1, pady=10)
        tk.Entry(self, textvariable=self.math).grid(row=2, column=2, pady=10)

        tk.Label(self, text='語 文:').grid(row=3, column=1, pady=10)
        tk.Entry(self, textvariable=self.chinese).grid(row=3, column=2, pady=10)

        tk.Label(self, text='英 語:').grid(row=4, column=1, pady=10)
        tk.Entry(self, textvariable=self.english).grid(row=4, column=2, pady=10)

        tk.Button(self, text='錄入',command=self.recode_info).grid(row=5,column=2,pady=10)
        tk.Label(self, textvariable=self.status).grid(row=6, column=2,pady=10,stick=tk.E)

    def recode_info(self):
        stu = {"name": self.name.get(),
               "math": self.math.get(),
               "chinese": self.chinese.get(),
               "english": self.english.get()}
        self.name.set('')  # 把名字重置為空
        db.insert(stu)
        self.status.set('數(shù)據(jù)錄入成功')


class SearchFrame(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        tk.Label(self, text='查詢').pack()


class DeleteFrame(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.username = tk.StringVar()
        self.status = tk.StringVar()
        tk.Label(self, text='根據(jù)名字刪除數(shù)據(jù)').pack()
        tk.Entry(self, textvariable=self.username).pack()
        tk.Button(self, text='刪除', command=self.delete).pack()
        # tk.Label(self, text=self.status).pack()

    def delete(self):
        username = self.username.get()
        flag,message = db.delete_by_useranme(username)
        self.status.set(message)


class SearchFrame(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.table_view = tk.Frame()
        self.table_view.pack()
        self.create_page()

    def create_page(self):
        columns = ('name', 'chinese', 'math', 'english')
        columns_values = ('姓名', '語文', '數(shù)學(xué)', '英語')
        self.tree_view = ttk.Treeview(self, show='headings', columns=columns)
        # self.table_view = ttk.Treeview(self, show='headings', columns=columns)
        self.tree_view.column('name', width=80, anchor='center')
        self.tree_view.column('chinese', width=80, anchor='center')
        self.tree_view.column('math', width=80, anchor='center')
        self.tree_view.column('english', width=80, anchor='center')
        self.tree_view.heading('name',text='姓名')
        self.tree_view.heading('chinese', text='語文')
        self.tree_view.heading('math', text='數(shù)學(xué)')
        self.tree_view.heading('english', text='英語')
        self.tree_view.pack(fill=tk.BOTH, expand=True)
        self.show_data_frame()

        tk.Button(self, text='刷新數(shù)據(jù)',command=self.show_data_frame).pack(anchor=tk.E,
                                                                       pady=5)

    def show_data_frame(self):
        # 刪除舊的數(shù)據(jù)
        for _ in map(self.tree_view.delete,self.tree_view.get_children('')):
            pass
        student = db.all()
        index = 0
        for stu in student:
            self.tree_view.insert('', index+1, values=(
                stu['name'],stu['math'],stu['chinese'],stu['english'],
            ))

五、數(shù)據(jù)庫邏輯處理

新建一個db.py文件

#!/usr/bin/env python
# encoding: utf-8
"""
@author: 拾壹
@software: PyCharm
@file: db.py
@time: 2023/3/7 14:39
"""
import json


class MysqlDatabases:
    def __init__(self):
        self.users = json.loads(open('user.json', mode='r', encoding='utf-8').read())
        self.students = json.loads(open('students.json', mode='r', encoding='utf-8').read())

    def check_login(self, username, password):
        for user in self.users:
            if username == user['username']:
                if password == user['password']:
                    return True, '登錄成功'
                else:
                    return False, '密碼錯誤'
            else:
                return False,'賬號錯誤'
        return False, '登錄失敗'

    def all(self):
        return self.students

    def insert(self,student):
        self.students.append(student)

    def delete_by_useranme(self, name):
        for student in self.students:
            if student['name'] == name:
                self.students.remove(student)
                return True, f'{name}用戶刪除成功'
        return False, f'{name}用戶不存在'

    def search_by_useranme(self, name):
        for student in self.students:
            if student['name'] == name:

                return True, student
        return False, f'{name}用戶不存在'

    def update(self, stu):
        for student in self.students:
            if student['name'] == stu['name']:
                student.update(stu)
                return True, f'{stu["name"]}用戶數(shù)據(jù)修改成功'
        return False, f'{stu["name"]}用戶不存在'


db = MysqlDatabases()


if __name__ == '__main__':
    print(db.check_login('admin', '123456'))

六、準(zhǔn)備學(xué)生數(shù)據(jù),建立一個json文件

新建一個students.json文件

[
  {"name": "張三", "math": "65", "chinese": "75","english": 100},
  {"name": "李四", "math": "65", "chinese": "75","english": 100},
  {"name": "王五", "math": "65", "chinese": "75","english": 100}
]

七、準(zhǔn)備用戶數(shù)據(jù),建立一個json文件

新建一個user.json文件

[
  {"username": "admin", "password": "123456"},
  {"username": "admin1", "password": "123456"}
]

八、系統(tǒng)展示文章來源地址http://www.zghlxwxcb.cn/news/detail-479993.html

  1. 登錄頁

python基于Tkinter實現(xiàn)學(xué)生信息管理系統(tǒng)
  1. 增刪改查頁面

python基于Tkinter實現(xiàn)學(xué)生信息管理系統(tǒng)

八、優(yōu)缺點:

優(yōu)點:
1.提高工作效率:學(xué)生成績管理系統(tǒng)可以使管理員更快捷、準(zhǔn)確地管理學(xué)生成績信息,提高工作效率。
2.管理方便:學(xué)生成績管理系統(tǒng)可以將學(xué)生成績信息集中管理,方便管理員進(jìn)行數(shù)據(jù)統(tǒng)計和分析,從而更好地了解學(xué)生成績情況。
3.信息準(zhǔn)確:學(xué)生成績管理系統(tǒng)可以確保學(xué)生的成績信息準(zhǔn)確無誤,并且可以及時更新和維護(hù)學(xué)生成績信息。
4.易于操作:學(xué)生成績管理系統(tǒng)的操作簡單易懂,管理員可以快速上手,不需要花費(fèi)大量的時間和精力學(xué)習(xí)。
缺點:
1.安全性問題:學(xué)生成績管理系統(tǒng)中包含學(xué)生的個人信息,如姓名、學(xué)號等,如果系統(tǒng)存在安全漏洞或被黑客攻擊,可能會導(dǎo)致學(xué)生信息泄露。
2.技術(shù)要求高:學(xué)生成績管理系統(tǒng)需要一定的技術(shù)支持,如果管理員技術(shù)水平低,可能會導(dǎo)致系統(tǒng)出現(xiàn)故障或者數(shù)據(jù)丟失等問題。
3.費(fèi)用較高:學(xué)生成績管理系統(tǒng)需要購買軟件并進(jìn)行維護(hù)和更新,如果學(xué)校沒有足夠的預(yù)算,可能會造成經(jīng)濟(jì)壓力。

九、備注

增刪改查成績學(xué)生成績管理系統(tǒng)是一個比較實用的軟件,也是很多學(xué)校和教師必備的工具之一,因此,作為畢設(shè)的話是一個不錯的選擇。但是,如果只是簡單地完成一個增刪改查的功能可能會比較簡單,需要在實現(xiàn)基本功能的基礎(chǔ)上,增加一些創(chuàng)新的設(shè)計和實現(xiàn),才能夠使畢設(shè)更具有研究和實踐價值。同時,需要考慮到該系統(tǒng)的安全性、性能、可擴(kuò)展性等問題,盡可能地完善和優(yōu)化系統(tǒng)的各項功能和性能,從而提高該系統(tǒng)的實用性和可靠性。

到了這里,關(guān)于python基于Tkinter實現(xiàn)學(xué)生信息管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于C++實現(xiàn)的學(xué)生信息管理系統(tǒng)

    基于C++實現(xiàn)的學(xué)生信息管理系統(tǒng)

    點擊獲?。ㄔ创a+課程設(shè)計報告文檔+截圖) 學(xué)生信息管理系統(tǒng)是針對學(xué)校人事處的大量業(yè)務(wù)處理工作而開發(fā)的管理軟件,主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、科學(xué)化、規(guī)范化和自動化,其主要任務(wù)是用計算機(jī)對學(xué)生各種信息進(jìn)行日常管理,如

    2024年02月04日
    瀏覽(18)
  • 基于SSM架構(gòu)實現(xiàn)學(xué)生信息管理系統(tǒng)

    基于SSM架構(gòu)實現(xiàn)學(xué)生信息管理系統(tǒng)

    本項目是一個基于SSM(Spring+SpringMVC+MyBatis)框架搭建的學(xué)生信息管理系統(tǒng),實現(xiàn)了對學(xué)生、用戶等信息的增刪改查功能,以及登錄、分頁等功能。本項目采用了三層架構(gòu),分為entity層、service層、dao層和controller層,使用了Maven進(jìn)行項目管理,使用了MySQL作為數(shù)據(jù)庫。 本項目主要

    2024年02月03日
    瀏覽(23)
  • 數(shù)據(jù)庫實戰(zhàn):基于Tkinter+MySQL的學(xué)生成績管理系統(tǒng)

    數(shù)據(jù)庫實戰(zhàn):基于Tkinter+MySQL的學(xué)生成績管理系統(tǒng)

    用Python和數(shù)據(jù)庫一起實現(xiàn)了一個簡單的學(xué)生成績管理系統(tǒng),一起來看看吧! 本篇博客主要分為兩大部分,數(shù)據(jù)庫部分和Python程序設(shè)計部分,先將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中,隨后通過python程序設(shè)計連接到數(shù)據(jù)庫,實現(xiàn)一系列的操作。 代碼下載地址:https://download.csdn.net/download/m0_68

    2024年02月03日
    瀏覽(28)
  • 學(xué)生信息管理系統(tǒng)(Python實現(xiàn))

    目錄 1.功能介紹 2.代碼模塊 3.全局代碼 摘劍!?。?采用列表+類的組合來實現(xiàn)對信息的增刪改查,整體代碼比較簡單,只用了100余行 1)添加學(xué)生信息 2)查詢學(xué)生信息 3)刪除學(xué)生信息 4)修改學(xué)生信息 5)遍歷學(xué)生信息 1)學(xué)生類 2)菜單menu 3)添加insert ?4)查詢search 5)刪

    2024年02月13日
    瀏覽(18)
  • java畢業(yè)設(shè)計——基于JSP+sqlserver的學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn)(畢業(yè)論文+程序源碼)——學(xué)生信息管理系統(tǒng)

    java畢業(yè)設(shè)計——基于JSP+sqlserver的學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn)(畢業(yè)論文+程序源碼)——學(xué)生信息管理系統(tǒng)

    大家好,今天給大家介紹基于JSP+sqlserver的學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn),文章末尾附有本畢業(yè)設(shè)計的論文和源碼下載地址哦。需要下載開題報告PPT模板及論文答辯PPT模板等的小伙伴,可以進(jìn)入我的博客主頁查看左側(cè)最下面欄目中的自助下載方法哦 文章目錄: 隨著學(xué)校規(guī)模的

    2024年02月04日
    瀏覽(29)
  • 【Python畢業(yè)設(shè)計】基于Python+Flask+MySQL的學(xué)生信息管理系統(tǒng)(附完整源碼)

    【Python畢業(yè)設(shè)計】基于Python+Flask+MySQL的學(xué)生信息管理系統(tǒng)(附完整源碼)

    1、項目說明 基于python+Flask+mysql的學(xué)生信息管理系統(tǒng)項目實戰(zhàn) 項目需要安裝pycharm專業(yè)版,mysql數(shù)據(jù)庫以及項目所需的所有模塊 創(chuàng)建數(shù)據(jù)庫名稱db_online_notes,然后執(zhí)行sql文件生成數(shù)據(jù)表和數(shù)據(jù) 項目需要安裝 flask,pymysql以及其他的一些模塊 安裝命令如下: pip install -i https://pypi

    2023年04月18日
    瀏覽(25)
  • Python實現(xiàn)學(xué)生信息管理系統(tǒng)V3.0(GUI界面)

    Python實現(xiàn)學(xué)生信息管理系統(tǒng)V3.0(GUI界面)

    關(guān)于“學(xué)生信息管理系統(tǒng)”的基本思路和詳細(xì)過程,請看V1.0版本: Python實現(xiàn)學(xué)生信息管理系統(tǒng)V1.0_︶ㄣ釋然的博客-CSDN博客 本文是關(guān)于學(xué)生信息管理系統(tǒng)的簡易版以及具體內(nèi)容具體思路的詳細(xì)講解,簡單易理解、純邏輯實現(xiàn)、沒有復(fù)雜的第三方庫,適合新手小白練手 https:/

    2024年02月09日
    瀏覽(18)
  • python實現(xiàn)手機(jī)通訊錄和學(xué)生信息管理系統(tǒng)(4種方法)

    python實現(xiàn)手機(jī)通訊錄和學(xué)生信息管理系統(tǒng)(4種方法)

    1.手機(jī)通訊錄: 通訊錄是記錄了聯(lián)系人姓名和聯(lián)系方式的名錄,手機(jī)通訊錄是最常見的通訊錄之一,人們可以在通訊錄中通過姓名查看相關(guān)聯(lián)系人的聯(lián)系方式、郵箱、地址等信息,也可以在其中新增聯(lián)系人,或修改、刪除聯(lián)系人信息。下面是一個常見通訊錄的功能菜單,如圖

    2024年02月09日
    瀏覽(44)
  • python 實現(xiàn)學(xué)生信息管理系統(tǒng)+MySql 數(shù)據(jù)庫,包含源碼及相關(guān)實現(xiàn)說明~

    python 實現(xiàn)學(xué)生信息管理系統(tǒng)+MySql 數(shù)據(jù)庫,包含源碼及相關(guān)實現(xiàn)說明~

    1、系統(tǒng)說明 python 編寫的學(xué)生信息管理系統(tǒng)+MySQL數(shù)據(jù)庫,實現(xiàn)了增刪改查的基本功能。 2、數(shù)據(jù)庫說明 本人使用的是 MySQL8.0 版本 數(shù)據(jù)庫端口號為:3306 數(shù)據(jù)庫用戶名是:root 數(shù)據(jù)庫名稱是:practice 建立的表是:students 3、系統(tǒng)功能 增加學(xué)生信息 刪除學(xué)生信息 修改學(xué)生信息 查

    2024年02月11日
    瀏覽(26)
  • [Python+Django]Web學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫設(shè)計及系統(tǒng)實現(xiàn)

    [Python+Django]Web學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫設(shè)計及系統(tǒng)實現(xiàn)

    本文我們完成數(shù)據(jù)的設(shè)計,并通過Django框架完成數(shù)據(jù)庫構(gòu)建同時利用Django框架模式實現(xiàn)學(xué)生信息管理系統(tǒng)的功能。 簡單的包裝下畢設(shè)應(yīng)該沒問題了。 Python,Mysql,Pycharm的安裝本文就不做特別介紹了,有需要的同學(xué)請參考如下博文。 Python + Django4 搭建個人博客(二):準(zhǔn)備開

    2024年02月03日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包