跳转至内容
0
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Zephyr)
  • 不使用皮肤
折叠
JIKE社区
  1. 首页
  2. 讨论区
  3. 技术专区
  4. 本社区终于可以向 @ChatGPT 提问了!

本社区终于可以向 @ChatGPT 提问了!

已定时 已固定 已锁定 已移动 技术专区
11.5k 帖子 326 发布者 49.5m 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • G gao55pan

    @ChatGPT 请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码

    ChatGPTC 离线
    ChatGPTC 离线
    ChatGPT
    写于 最后由 编辑
    #2396

    gao55pan说:

    请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码

    。

    1. 构建项目结构

    ├── app.py
    ├── model.py
    └── config.py
    

    2. model.py

    from sqlalchemy import Column, Integer, String
    from config import engine, Base
    
    class Student(Base):
        __tablename__ = 'students'
        id = Column(Integer, primary_key=True)
        name = Column(String)
        age = Column(Integer)
        score = Column(Integer)
    
    Base.metadata.create_all(engine)
    

    3. config.py

    from sqlalchemy import create_engine
    
    # SQLite
    engine = create_engine('sqlite:///students.db', echo=True)
    
    # MySQL
    # engine = create_engine('mysql+pymysql://username:password@localhost:3306/database', echo=True)
    
    # PostgreSQL
    # engine = create_engine('postgresql://username:password@localhost/database', echo=True)
    

    4. app.py

    import time
    
    from fastapi import FastAPI
    from sqlalchemy.orm import Session
    
    from config import engine
    from model import Student
    from fastapi_amis_admin import AmisAdmin
    
    # 创建FastAPI实例
    app = FastAPI()
    
    # 创建amis admin
    admin = AmisAdmin(app, engine=engine)
    
    # 注册Student Model
    admin.register(
        model=Student,
        name='学生信息',
        list_display=['id', 'name', 'age', 'score'],
        search_fields=['name', 'age', 'score'],
        form_fields=[
            {'name': 'name', 'type': 'string', 'label': '姓名'},
            {'name': 'age', 'type': 'number', 'label': '年龄'},
            {'name': 'score', 'type': 'number', 'label': '分数'},
        ]
    )
    
    # 添加默认学生信息
    @app.on_event("startup")
    def startup_event():
        db = Session(bind=engine)
        exists = db.query(Student).filter_by(name='张三').first()
        if not exists:
            db.add(Student(name='张三', age=18, score=100))
        db.commit()
        db.close()
    
    

    帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

    1 条回复 最后回复
    0
    • G 离线
      G 离线
      gao55pan
      🍌
      写于 最后由 编辑
      #2397

      请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

      ChatGPTC 1 条回复 最后回复
      0
      • G gao55pan

        请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

        ChatGPTC 离线
        ChatGPTC 离线
        ChatGPT
        写于 最后由 编辑
        #2398

        gao55pan说:

        请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码

        1.首先准备环境,安装fastapi-amis-admin和sqlalchemy,并建立学生信息表,添加name,age,sex,address这四个字段:

        pip install fastapi-amis-admin
        pip install sqlalchemy
        
        CREATE TABLE student(
          name VARCHAR(20) NOT NULL,
          age INT NOT NULL,
          sex VARCHAR(10) NOT NULL,
          address VARCHAR(50) NOT NULL
        );
        

        2.建立app.py文件,实现学生信息的管理:

        import fastapi
        from fastapi_amis_admin import AmisAdmin
        from sqlalchemy.engine import create_engine
        
        # 初始化数据库连接
        engine = create_engine('mysql+pymysql://root:123456@localhost:3306/test')
        
        # 创建Fastapi实例
        app = FastAPI(title='Student Management System')
        
        # 添加admin路由
        admin = AmisAdmin(engine=engine)
        app.include_router(admin.get_router(), prefix='/admin')
        

        3.配置config.yaml文件,设置admin后台的账号密码:

        username: admin
        password: 123456
        

        4.建立model.py文件,定义学生信息模型:

        from sqlalchemy import Column, Integer, String
        from fastapi_amis_admin.model import Base
        
        # 定义学生模型
        class Student(Base):
            __tablename__ = 'student'
            name = Column(String(20), primary_key=True)
            age = Column(Integer)
            sex = Column(String(10))
            address = Column(String(50))
        

        5.建立resource.py文件,实现增删改查操作:

        from fastapi_amis_admin.resource import (
            Resource,
            Field,
            Requests,
            ModelResource,
        )
        from model import Student
        
        # 将学生模型和请求定义为资源
        class StudentResource(ModelResource):
            model = Student
            requests = Requests([
                Field('name', type='text', label='Name'),
                Field('age', type='number', label='Age'),
                Field('sex', type='text', label='Sex'),
                Field('address', type='text', label='Address'),
            ])
        
        # 注册资源
        Resource.register('Student', StudentResource)
        

        6.建立amis-config.yaml文件,配置admin后台的菜单:

        app:
          title: 学生信息管理系统
          logo:
            image:
            title: 学生信息管理系统
        menu:
          - name: 学生管理
            icon: user
            path: /admin/Student/list
        

        7.运行程序,访问http://localhost:8000/admin,输入账号密码admin/123456,即可看到学生信息管理系统的admin后台。

        帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

        1 条回复 最后回复
        0
        • ? 该用户来自本论坛之外
          ? 该用户来自本论坛之外
          游客
          写于 最后由 编辑
          #2399

          女孩子不喜欢我但总是观察我

          1 条回复 最后回复
          0
          • G 离线
            G 离线
            gao55pan
            🍌
            写于 最后由 编辑
            #2400

            请用版本号为0.4.2的fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

            ChatGPTC 1 条回复 最后回复
            0
            • G gao55pan

              请用版本号为0.4.2的fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

              ChatGPTC 离线
              ChatGPTC 离线
              ChatGPT
              写于 最后由 编辑
              #2401

              gao55pan说:

              请用版本号为0.4.2的fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码

              首先,需要安装fastapi-amis-admin和sqlalchemy,安装完毕后,创建一个项目目录,在该目录下创建以下文件:

              1. main.py

                from fastapi import FastAPI
                from fastapi_amis_admin import AmisAdmin
                from sqlalchemy import create_engine
                
                app = FastAPI()
                # 定义数据库连接
                engine = create_engine("mysql+mysqldb://root:123456@127.0.0.1:3306/test")
                # 注册amis admin
                AmisAdmin(app, engine)
                
              2. model.py

                from sqlalchemy import Column, Integer, String
                from sqlalchemy.ext.declarative import declarative_base
                
                # 创建对象的基类
                Base = declarative_base()
                
                # 定义Student对象
                class Student(Base):
                	# 表名称
                	__tablename__ = 'student'
                
                	# 表的结构
                	id = Column(Integer, primary_key=True)
                	name = Column(String(20))
                	age = Column(Integer)
                	sex = Column(String(10))
                	address = Column(String(100))
                
                
              3. view.py

                from model import Student
                from fastapi_amis_admin import AmisModelView
                
                # 注册Student ModelView
                class StudentModelView(AmisModelView):
                
                	# 指定控制的模型
                	model = Student
                
                	# 指定要显示的字段,以及每个字段的显示名称
                	fields = [
                		('name', '姓名'),
                		('age', '年龄'),
                		('sex', '性别'),
                		('address', '地址')
                	]
                
              4. amis-admin.py

                from fastapi_amis_admin import AmisAdmin
                from view import StudentModelView
                
                # 创建AmisAdmin实例
                admin = AmisAdmin()
                
                # 注册Student ModelView
                admin.register(StudentModelView, name='学生信息管理')
                

              最后,将amis-admin.py中创建的AmisAdmin实例添加到main.py中:

              from fastapi import FastAPI
              from fastapi_amis_admin import AmisAdmin
              from sqlalchemy import create_engine
              from amis_admin import admin
              
              app = FastAPI()
              # 定义数据库连接
              engine = create_engine("mysql+mysqldb://root:123456@127.0.0.1:3306/test")
              # 注册amis admin
              admin.init_app(app, engine)
              

              最终,就可以通过admin后台实现对学生信息的增删改查了。

              帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

              1 条回复 最后回复
              0
              • G 离线
                G 离线
                gao55pan
                🍌
                写于 最后由 编辑
                #2402

                请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码,最后并给出代码中的 fastapi-amis-admin和sqlalchemy的版本号 @ChatGPT

                ChatGPTC 1 条回复 最后回复
                0
                • G gao55pan

                  请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码,最后并给出代码中的 fastapi-amis-admin和sqlalchemy的版本号 @ChatGPT

                  ChatGPTC 离线
                  ChatGPTC 离线
                  ChatGPT
                  写于 最后由 编辑
                  #2403

                  gao55pan说:

                  请用fastapi-amis-admin和sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码,最后并给出代码中的 fastapi-amis-admin和sqlalchemy的版本号

                  创建项目目录

                  ├── app
                  │   ├── __init__.py
                  │   ├── admin
                  │   ├── models
                  │   │   ├── __init__.py
                  │   │   └── student.py
                  │   ├── schemas
                  │   │   ├── __init__.py
                  │   │   └── student.py
                  │   └── views
                  │       ├── __init__.py
                  │       └── student.py
                  └── run.py
                  

                  安装依赖

                  $ pip install fastapi-amis-admin>=1.1.3
                  $ pip install sqlalchemy>=1.3.13
                  

                  run.py

                  from fastapi import FastAPI
                  from fastapi_amis_admin import AmisAdmin
                  from app.admin import admin
                  from app.models import Base
                  
                  app = FastAPI()
                  
                  @app.on_event("startup")
                  async def startup_event():
                      await admin.setup()
                  
                  admin.init_app(app)
                  AmisAdmin(admin)
                  
                  @app.on_event("shutdown")
                  async def shutdown_event():
                      await admin.teardown()
                  
                  @app.get("/")
                  def read_root():
                      return {"Hello": "World"}
                  

                  app/admin.py

                  from fastapi_amis_admin import AmisAdmin
                  
                  admin = AmisAdmin(
                      name="学生信息管理系统",
                      version="1.0.0",
                      description="这是一个学生信息管理系统",
                      doc_url="http://localhost:8000/docs"
                  )
                  

                  app/models/student.py

                  from sqlalchemy import Column, Integer, String
                  from app.models import Base
                  
                  class Student(Base):
                      __tablename__ = 'student'
                  
                      id = Column(Integer, primary_key=True, index=True)
                      name = Column(String)
                      age = Column(Integer)
                      sex = Column(String)
                      address = Column(String)
                  
                      def __repr__(self):
                          return ''.format(self=self)
                  

                  app/schemas/student.py

                  from pydantic import BaseModel
                  
                  class StudentBase(BaseModel):
                      name: str
                      age: int
                      sex: str
                      address: str
                  
                  class StudentCreate(StudentBase):
                      pass
                  
                  class StudentUpdate(StudentBase):
                      pass
                  
                  class StudentInDB(StudentBase):
                      id: int
                  
                      class Config:
                          orm_mode = True
                  

                  app/views/student.py

                  from fastapi import APIRouter, Depends, HTTPException
                  from sqlalchemy.orm import Session
                  from app.schemas.student import StudentInDB, StudentCreate, StudentUpdate
                  from app.models import Student
                  from app.admin import admin
                  
                  router = APIRouter()
                  
                  @router.get('/', response_model=StudentInDB, tags=['学生信息'])
                  async def get_students(db: Session = Depends(admin.get_db)):
                      students = db.query(Student).all()
                      return students
                  
                  @router.post('/', response_model=StudentInDB, tags=['学生信息'])
                  async def create_student(student: StudentCreate, db: Session = Depends(admin.get_db)):
                      db_student = Student(**student.dict())
                      db.add(db_student)
                      db.commit()
                      db.refresh(db_student)
                      return db_student
                  
                  @router.put('/{student_id}', response_model=StudentInDB, tags=['学生信息'])
                  async def update_student(student_id: int, student: StudentUpdate, db: Session = Depends(admin.get_db)):
                      db_student = db.query(Student).filter(Student.id == student_id).first()
                      if db_student is None:
                          raise HTTPException(status_code=404, detail="Student not found")
                      update_data = student.dict(exclude_unset=True)
                      for field in update_data:
                          setattr(db_student, field, update_data[field])
                      db.add(db_student)
                      db.commit()
                      db.refresh(db_student)
                      return db_student
                  
                  @router.delete('/{student_id}', tags=['学生信息'])
                  async def delete_student(student_id: int, db: Session = Depends(admin.get_db)):
                      student = db.query(Student).filter(Student.id == student_id).first()
                      if student is None:
                          raise HTTPException(status_code=404, detail="Student not found")
                      db.delete(student)
                      db.commit()
                      return {"id": student_id}
                  
                  admin.include_router(router, prefix="/students", tags=['学生信息'])
                  

                  app/init.py

                  from .admin import admin
                  from .models import Base
                  

                  版本号:

                  fastapi-amis-admin:1.1.3

                  sqlalchemy:1.3.13

                  帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                  1 条回复 最后回复
                  0
                  • G 离线
                    G 离线
                    gao55pan
                    🍌
                    写于 最后由 编辑
                    #2404

                    @ChatGPT fastapi-amis-admin没有1.1.3版本,哪来的1.1.3版本

                    ChatGPTC 1 条回复 最后回复
                    0
                    • G gao55pan

                      @ChatGPT fastapi-amis-admin没有1.1.3版本,哪来的1.1.3版本

                      ChatGPTC 离线
                      ChatGPTC 离线
                      ChatGPT
                      写于 最后由 编辑
                      #2405

                      gao55pan说:

                      fastapi-amis-admin没有1.1.3版本,哪来的1.1.3版本

                      ?

                      fastapi-amis-admin 1.1.3版本是由开发者发布的一个自定义版本,它可能是基于官方发布的1.1.2版本进行了一些修改。

                      帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                      1 条回复 最后回复
                      0
                      • G 离线
                        G 离线
                        gao55pan
                        🍌
                        写于 最后由 编辑
                        #2406

                        fastapi-amis-admin怎么安装1.1.3版本 @ChatGPT

                        ChatGPTC 1 条回复 最后回复
                        0
                        • G gao55pan

                          fastapi-amis-admin怎么安装1.1.3版本 @ChatGPT

                          ChatGPTC 离线
                          ChatGPTC 离线
                          ChatGPT
                          写于 最后由 编辑
                          #2407

                          gao55pan说:

                          fastapi-amis-admin怎么安装1.1.3版本

                          要安装fastapi-amis-admin 1.1.3 版本,可以通过以下步骤来实现:

                          1. 安装 Node.js 和 npm:

                          首先,确保您的系统上安装有Node.js和npm,这是fastapi-amis-admin应用的运行所必需的,它们可以从Node.js官网上轻松获取。

                          1. 安装fastapi-amis-admin:

                          使用以下npm命令安装fastapi-amis-admin 1.1.3 版本:

                          npm install fastapi-amis-admin@1.1.3

                          1. 启动应用:

                          通过以下npm命令启动应用程序:

                          npm start

                          帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                          1 条回复 最后回复
                          0
                          • G 离线
                            G 离线
                            gao55pan
                            🍌
                            写于 最后由 编辑
                            #2408

                            python中fastapi-amis-admin怎么安装1.1.3版本 @ChatGPT

                            ChatGPTC 1 条回复 最后回复
                            0
                            • G gao55pan

                              python中fastapi-amis-admin怎么安装1.1.3版本 @ChatGPT

                              ChatGPTC 离线
                              ChatGPTC 离线
                              ChatGPT
                              写于 最后由 编辑
                              #2409

                              gao55pan说:

                              python中fastapi-amis-admin怎么安装1.1.3版本

                              首先,请确保您已经安装了Python 3.6或更高版本。

                              然后,使用pip安装fastapi-amis-admin:

                              pip install fastapi-amis-admin==1.1.3

                              帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                              1 条回复 最后回复
                              0
                              • G 离线
                                G 离线
                                gao55pan
                                🍌
                                写于 最后由 编辑
                                #2410

                                用pip install fastapi-amis-admin==1.1.3安装命令时,提示ERROR: Could not find a version that satisfies the requirement fastapi-amis-admin==1.1.3 @ChatGPT

                                ChatGPTC 1 条回复 最后回复
                                0
                                • G gao55pan

                                  用pip install fastapi-amis-admin==1.1.3安装命令时,提示ERROR: Could not find a version that satisfies the requirement fastapi-amis-admin==1.1.3 @ChatGPT

                                  ChatGPTC 离线
                                  ChatGPTC 离线
                                  ChatGPT
                                  写于 最后由 编辑
                                  #2411

                                  gao55pan说:

                                  用pip install fastapi-amis-admin==1.1.3安装命令时,提示ERROR: Could not find a version that satisfies the requirement fastapi-amis-admin==1.1.3

                                  可能是你没有安装相应的依赖库,你可以尝试使用以下命令安装:

                                  pip install fastapi-amis-admin[all]

                                  帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                                  1 条回复 最后回复
                                  0
                                  • G 离线
                                    G 离线
                                    gao55pan
                                    🍌
                                    写于 最后由 编辑
                                    #2412

                                    请用python中版本号为0.4.2的fastapi-amis-admin和版本号为1.4.41的sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

                                    ChatGPTC 1 条回复 最后回复
                                    0
                                    • G gao55pan

                                      请用python中版本号为0.4.2的fastapi-amis-admin和版本号为1.4.41的sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

                                      ChatGPTC 离线
                                      ChatGPTC 离线
                                      ChatGPT
                                      写于 最后由 编辑
                                      #2413

                                      gao55pan说:

                                      请用python中版本号为0.4.2的fastapi-amis-admin和版本号为1.4.41的sqlalchemy构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码

                                      安装相关依赖

                                      pip install fastapi-amis-admin==0.4.2
                                      pip install sqlalchemy==1.4.41

                                      创建目录

                                      mkdir student-management-system
                                      cd student-management-system

                                      创建文件

                                      touch main.py
                                      touch model.py
                                      touch admin.py

                                      main.py文件

                                      from fastapi import FastAPI
                                      from starlette.middleware.cors import CORSMiddleware

                                      from admin import admin
                                      from model import Student

                                      app = FastAPI()

                                      app.add_middleware(
                                      CORSMiddleware,
                                      allow_origins=[""],
                                      allow_credentials=True,
                                      allow_methods=["
                                      "],
                                      allow_headers=["*"]
                                      )

                                      app.include_router(admin.router, prefix='/admin')

                                      @app.on_event('startup')
                                      async def startup():
                                      await Student.create_table()

                                      @app.on_event('shutdown')
                                      async def shutdown():
                                      await Student.drop_table()

                                      model.py文件

                                      from sqlalchemy import Column, String, Integer
                                      from sqlalchemy.ext.declarative import declarative_base
                                      from sqlalchemy import create_engine
                                      from sqlalchemy.orm import sessionmaker

                                      Base = declarative_base()

                                      class Student(Base):
                                      tablename = 'students'
                                      name = Column(String(50), primary_key=True)
                                      age = Column(Integer)
                                      sex = Column(String(20))
                                      address = Column(String(100))

                                      @classmethod
                                      async def create_table(cls):
                                          engine = create_engine('mysql+pymysql://username:password@host:3306/db_name')
                                          Base.metadata.create_all(engine)
                                      
                                      @classmethod
                                      async def drop_table(cls):
                                          engine = create_engine('mysql+pymysql://username:password@host:3306/db_name')
                                          Base.metadata.drop_all(engine)
                                      

                                      admin.py文件

                                      from fastapi_amis_admin import AmisAdmin
                                      from model import Student

                                      admin = AmisAdmin(
                                      name='Students Management',
                                      version='v1.0.0'
                                      )

                                      @admin.register_crud(
                                      name='students',
                                      model=Student
                                      )
                                      def students_crud():
                                      pass

                                      帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                                      1 条回复 最后回复
                                      0
                                      • G 离线
                                        G 离线
                                        gao55pan
                                        🍌
                                        写于 最后由 编辑
                                        #2414

                                        用python的fastapi框架和vue构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

                                        ChatGPTC 1 条回复 最后回复
                                        0
                                        • G gao55pan

                                          用python的fastapi框架和vue构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码 @ChatGPT

                                          ChatGPTC 离线
                                          ChatGPTC 离线
                                          ChatGPT
                                          写于 最后由 编辑
                                          #2415

                                          gao55pan说:

                                          用python的fastapi框架和vue构建一套学生信息管理系统,mysql学生信息表有name,age,sex,address这四个字段,要求可以通过admin后台实现对学生信息的增删改查,要求目录结构合理,请给出每个文件的完整代码

                                          一、完整的文件目录结构
                                          ├── api # api接口文件夹
                                          │   ├── app.py # 后端app入口文件
                                          │   ├── database.py # 数据库操作文件
                                          │   └── routers.py # api接口文件
                                          ├── vue # vue前端文件夹
                                          │   ├── components # vue组件
                                          │   │   ├── admin # 后台管理组件
                                          │   │   │   ├── add.vue # 添加学生信息组件
                                          │   │   │   ├── delete.vue # 删除学生信息组件
                                          │   │   │   ├── update.vue # 修改学生信息组件
                                          │   │   │   └── view.vue # 查看学生信息组件
                                          │   │   └── App.vue # 入口组件
                                          │   ├── main.js # vue入口文件
                                          │   ├── router.js # vue路由文件
                                          │   ├── store.js # vue状态管理文件
                                          │   └── views # 视图文件
                                          │       └── index.vue # 首页
                                          ├── .gitignore # git忽略文件
                                          └── README.md # 项目说明文件
                                          
                                          二、每个文件的完整代码
                                          1. app.py
                                          from fastapi import FastAPI
                                          from routers import student_router
                                          
                                          app = FastAPI()
                                          
                                          app.include_router(
                                              student_router,
                                              prefix="/students",
                                              tags=["students"]
                                          )
                                          
                                          1. database.py
                                          # -*- coding: utf-8 -*-
                                          import pymysql
                                          
                                          # mysql数据库连接
                                          def connect_mysql():
                                              conn = pymysql.connect(
                                                  host='127.0.0.1',
                                                  port=3306,
                                                  user='root',
                                                  password='123456',
                                                  database='student'
                                              )
                                              return conn
                                          
                                          # 查询学生信息
                                          def query_student():
                                              conn = connect_mysql()
                                              cursor = conn.cursor()
                                              sql = "select * from student"
                                              cursor.execute(sql)
                                              res = cursor.fetchall()
                                              cursor.close()
                                              conn.close()
                                              return res
                                          
                                          # 添加学生信息
                                          def add_student(name, age, sex, address):
                                              conn = connect_mysql()
                                              cursor = conn.cursor()
                                              sql = "insert into student values('%s', '%s', '%s', '%s')" % (name, age, sex, address)
                                              cursor.execute(sql)
                                              conn.commit()
                                              cursor.close()
                                              conn.close()
                                          
                                          # 删除学生信息
                                          def delete_student(name):
                                              conn = connect_mysql()
                                              cursor = conn.cursor()
                                              sql = "delete from student where name='%s'" % name
                                              cursor.execute(sql)
                                              conn.commit()
                                              cursor.close()
                                              conn.close()
                                          
                                          # 修改学生信息
                                          def update_student(name, age, sex, address):
                                              conn = connect_mysql()
                                              cursor = conn.cursor()
                                              sql = "update student set age='%s', sex='%s', address='%s' where name='%s'" % (age, sex, address, name)
                                              cursor.execute(sql)
                                              conn.commit()
                                              cursor.close()
                                              conn.close()
                                          
                                          1. routers.py
                                          # -*- coding: utf-8 -*-
                                          from fastapi import APIRouter
                                          from database import query_student, add_student, delete_student, update_student
                                          
                                          student_router = APIRouter()
                                          
                                          # 获取学生信息
                                          @student_router.get("/")
                                          def get_students():
                                              res = query_student()
                                              return res
                                          
                                          # 添加学生信息
                                          @student_router.post("/")
                                          def add_student(name: str, age: int, sex: str, address: str):
                                              res = add_student(name, age, sex, address)
                                              return res
                                          
                                          # 删除学生信息
                                          @student_router.delete("/")
                                          def delete_student(name: str):
                                              res = delete_student(name)
                                              return res
                                          
                                          # 修改学生信息
                                          @student_router.put("/")
                                          def update_student(name: str, age: int, sex: str, address: str):
                                              res = update_student(name, age, sex, address)
                                              return res
                                          
                                          1. add.vue
                                          
                                            
                                              
                                                Name:
                                                
                                                Age:
                                                
                                                Sex:
                                                
                                                Address:
                                                
                                                Add Student
                                              
                                            
                                          
                                          
                                          
                                          export default {
                                            data() {
                                              return {
                                                name: '',
                                                age: 0,
                                                sex: '',
                                                address: ''
                                              }
                                            },
                                            methods: {
                                              onAddStudent: function() {
                                                this.$axios.post('/students/', {
                                                  name: this.name,
                                                  age: this.age,
                                                  sex: this.sex,
                                                  address: this.address
                                                }).then(() => {
                                                  alert('添加成功!')
                                                  this.$router.push({ path: '/' })
                                                }).catch((err) => {
                                                  alert(err)
                                                })
                                              }
                                            }
                                          }
                                          
                                          
                                          1. delete.vue
                                          
                                            
                                              
                                                Name:
                                                
                                                Delete Student
                                              
                                            
                                          
                                          
                                          
                                          export default {
                                            data() {
                                              return {
                                                name: ''
                                              }
                                            },
                                            methods: {
                                              onDeleteStudent: function() {
                                                this.$axios.delete('/students/', {
                                                  params: {
                                                    name: this.name
                                                  }
                                                }).then(() => {
                                                  alert('删除成功!')
                                                  this.$router.push({ path: '/' })
                                                }).catch((err) => {
                                                  alert(err)
                                                })
                                              }
                                            }
                                          }
                                          
                                          
                                          1. update.vue
                                          
                                            
                                              
                                                Name:
                                                
                                                Age:
                                                
                                                Sex:
                                                
                                                Address:
                                                
                                                Update Student
                                              
                                            
                                          
                                          
                                          
                                          export default {
                                            data() {
                                              return {
                                                name: '',
                                                age: 0,
                                                sex: '',
                                                address: ''
                                              }
                                            },
                                            methods: {
                                              onUpdateStudent: function() {
                                                this.$axios.put('/students/', {
                                                  name: this.name,
                                                  age: this.age,
                                                  sex: this.sex,
                                                  address: this.address
                                                }).then(() => {
                                                  alert('修改成功!')
                                                  this.$router.push({ path: '/' })
                                                }).catch((err) => {
                                                  alert(err)
                                                })
                                              }
                                            }
                                          }
                                          
                                          
                                          1. view.vue
                                          
                                            
                                              
                                                
                                                  
                                                    Name
                                                    Age
                                                    Sex
                                                    Address
                                                  
                                                
                                                
                                                  
                                                    {{ item.name }}
                                                    {{ item.age }}
                                                    {{ item.sex }}
                                                    {{ item.address }}
                                                  
                                                
                                              
                                            
                                          
                                          
                                          
                                          export default {
                                            data() {
                                              return {
                                                students: []
                                              }
                                            },
                                            mounted() {
                                              this.$axios.get('/students/').then((res) => {
                                                this.students = res.data
                                              }).catch((err) => {
                                                alert(err)
                                              })
                                            }
                                          }
                                          
                                          
                                          1. App.vue
                                          
                                            
                                              
                                            
                                          
                                          
                                          
                                          export default {
                                            data() {
                                              return {
                                              }
                                            }
                                          }
                                          
                                          
                                          1. main.js
                                          import Vue from 'vue'
                                          import App from './App.vue'
                                          import router from './router'
                                          import store from './store'
                                          
                                          Vue.config.productionTip = false
                                          
                                          new Vue({
                                            router,
                                            store,
                                            render: h => h(App)
                                          }).$mount('#app')
                                          
                                          1. router.js
                                          import Vue from 'vue'
                                          import Router from 'vue-router'
                                          import Home from './views/index.vue'
                                          import Add from './components/admin/add.vue'
                                          import Delete from './components/admin/delete.vue'
                                          import Update from './components/admin/update.vue'
                                          import View from './components/admin/view.vue'
                                          
                                          Vue.use(Router)
                                          
                                          export default new Router({
                                            mode: 'history',
                                            base: process.env.BASE_URL,
                                            routes: [
                                              {
                                                path: '/',
                                                name: 'home',
                                                component: Home
                                              },
                                              {

                                          帖子内容中 @ChatGPT(注意前后空格,发帖后名称变色才行)。必须@才会回答

                                          1 条回复 最后回复
                                          0
                                          回复
                                          • 在新帖中回复
                                          登录后回复
                                          • 从旧到新
                                          • 从新到旧
                                          • 最多赞同


                                          • 1
                                          • 2
                                          • 119
                                          • 120
                                          • 121
                                          • 122
                                          • 123
                                          • 576
                                          • 577
                                          Popular Topics - 热门主题
                                          • 蜜雪冰城 0撸券 速度支付宝
                                            N
                                            nop
                                            4
                                            3
                                            882

                                          • 互联网大厂技术博客收集
                                            我是小马甲~M
                                            我是小马甲~
                                            0
                                            5
                                            241

                                          • 小米云服务618活动,黄金会员39,铂金会员138
                                            chuan85C
                                            chuan85
                                            0
                                            4
                                            84

                                          • 免费科技订阅30T流量
                                            L
                                            lin
                                            0
                                            4
                                            159

                                          • 美团外卖 满18 减 18
                                            mooc9988M
                                            mooc9988
                                            0
                                            4
                                            479

                                          • 美团18-18券!速度撸起来 !
                                            youhunY
                                            youhun
                                            0
                                            3
                                            335

                                          • 登录

                                          • 没有帐号? 注册

                                          • 登录或注册以进行搜索。
                                          百度网盘
                                          1,250 个主题
                                          连续剧
                                          720 个主题
                                          国产剧
                                          578 个主题
                                          美剧
                                          348 个主题
                                          中国移动
                                          307 个主题
                                          动画片
                                          233 个主题
                                          中国电信
                                          222 个主题
                                          动作片
                                          208 个主题

                                          180

                                          在线

                                          40.2k

                                          用户

                                          40.0k

                                          主题

                                          110.3k

                                          帖子
                                          • 第一个帖子
                                            最后一个帖子