会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133938个问题



vue_shop.zip

flask_first06.zip

这个地方又遇到问题了,我使用 apipost 测试软件 登录传值回后端,后端能接收到,从后端返回值 apipost 测试软件能接收的到。

但是,使用vue登录传值回后端,后端能接收到,但返回值却返回不了vue的前端,能帮我看一下问题出在哪了吗。

image.png

看 后端可以正常的接收到数据。


image.png

pipost 测试软件 可以正常接收到返回信息


image.png

image.png

vue 却接收不到返回消息


image.png

image.png

跟老师写的一样的,console.log(res) 就返回这样,空值还各种报错


image.png

image.png

使用国定的console.log("123") 就能有返回值,但还是有报错 


这个地方用了4个晚上时间了,实在是找不出原因了,跪求老师帮助...
源文件在上面,再三恳求老师给看看,我这再搞就搞崩了...

Python 全系列/第九阶段:Flask百战电商后台系统/Flask百战电商后台项目 22487楼
Python 全系列/第一阶段:AI驱动的Python编程/控制语句 22488楼
JAVA 全系列/第十一阶段:分布式RPC调用和分布式文件存储/Zookeeper 22489楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 22490楼
JAVA 全系列/第十一阶段:分布式RPC调用和分布式文件存储/Zookeeper 22492楼

老师,画图软件有以下几个问题不是很明白

  1. 19行的绘制最后的图形id这里是啥意思?

  2. 定义橡皮檫方法的时候x-10,y-10,x+10,y+10是啥意思?

  3. if 判断语句里面的self.x,slef.y不是一个记录上一次画的终点值嘛,为啥加了这一段话就可以在绘画区域里随便画了,我看没加if判断语句之前程序默认在绘画区域里的0,0为起始值,不是很明白这个原理?

  4. 老师顺便帮我看下代码里的注释,看下理解得对嘛?


"""开发画图软件的菜单
"""

from tkinter.filedialog import *
from tkinter.colorchooser import *

#窗口的全局变量
win_width=900
win_height=450

class Application(Frame):

    def __init__(self,master=None,bgcolor='#000000'):
        super().__init__(master)
        self.master=master
        self.bgcolor=bgcolor
        self.x=0  #起始点为0
        self.y=0
        self.lastDraw=0   # 表示最后绘制的图形的id
        self.fgcolor='#ff0000'  #默认是红色
        self.startDrawFlag = False  # 一开始默认是False

        self.pack()

        self.createWidget()

    def createWidget(self):
        #创建绘图区
        self.drawpad=Canvas(root,width=win_width,height=win_height*0.9,bg=self.bgcolor)
        self.drawpad.pack()

        #创建按钮
        btn_start = Button(root, text="开始", name="start")
        btn_start.pack(side="left", padx="10")

        btn_pen = Button(root, text="画笔", name="pen")
        btn_pen.pack(side="left", padx="10")

        btn_rect = Button(root, text="矩形", name="rect")
        btn_rect.pack(side="left", padx="10")

        btn_clear = Button(root, text="清屏", name="clear")
        btn_clear.pack(side="left", padx="10")

        btn_erasor = Button(root, text="橡皮擦", name="erasor")
        btn_erasor.pack(side="left", padx="10")

        btn_line = Button(root, text="直线", name="line")
        btn_line.pack(side="left", padx="10")

        btn_lineArrow = Button(root, text="箭头直线", name="lineArrow")
        btn_lineArrow.pack(side="left", padx="10")

        btn_color = Button(root, text="颜色", name="color")
        btn_color.pack(side="left", padx="10")

        # 事件处理
        btn_pen.bind_class("Button", "<1>", self.eventManager)   #按住鼠标左键拖动
        self.drawpad.bind("<ButtonRelease-1>",self.stopDraw)     #释放鼠标左键处理

        # 增加颜色切换的快捷键
        root.bind("<KeyPress-r>", self.kuaijiejian)
        root.bind("<KeyPress-g>", self.kuaijiejian)
        root.bind("<KeyPress-y>", self.kuaijiejian)



    def eventManager(self,event):
        name = event.widget.winfo_name()
        print(name)

        if name=='line':   #直线
            self.drawpad.bind("<B1-Motion>",self.myline)  #在画图区域按住鼠标左键拖动进行事件处理
        elif name=='lineArrow': #箭头直线
            self.drawpad.bind("<B1-Motion>", self.mylineArrow)
        elif name=='rect':  #定义矩形方法
            self.drawpad.bind("<B1-Motion>", self.myRect)
        elif name=='pen':   #定义画笔方法
            self.drawpad.bind("<B1-Motion>", self.myPen)
        elif name=='erasor':  #定义橡皮檫方法
            self.drawpad.bind("<B1-Motion>", self.myErasor)
        elif name=="clear":  #清屏方法
            self.drawpad.delete("all")
        elif name=="color":  #更换颜色的方法
            c = askcolor(color=self.fgcolor,title="选择画笔颜色")
            #[(255,0,0),"#ff0000"]
            self.fgcolor = c[1]

    def startDraw(self,event):  #重新定义方法名,调用即可
        self.drawpad.delete(self.lastDraw)  # 删除已有的直线,重新调用

        if not self.startDrawFlag:
            self.startDrawFlag = True
            self.x = event.x  # Ture表示不是第一次画,将self.x,self.y设置为上一次画的终点值,记录最后一次终点值的坐标
            self.y = event.y

    def myline(self,event):  #定义直线方法
        self.startDraw(event)

        self.lastDraw=self.drawpad.create_line(self.x,self.y,event.x,event.y,fill=self.fgcolor)  #记录起始坐标与终点坐标事件处理

    def mylineArrow(self,event):  #定义箭头直线方法
        self.drawpad.delete(self.lastDraw)  # 删除已有的直线,重新调用
        if not self.startDrawFlag:
            self.startDrawFlag = True
            self.x = event.x  # Ture表示不是第一次画,将self.x,self.y设置为上一次画的终点值,记录最后一次终点值的坐标
            self.y = event.y
        self.lastDraw = self.drawpad.create_line(self.x, self.y, event.x, event.y,arrow=LAST,fill=self.fgcolor)

    def myRect(self,event):    #定义矩形方法
        self.drawpad.delete(self.lastDraw)  # 删除已有的直线,重新调用
        if not self.startDrawFlag:
            self.startDrawFlag = True
            self.x = event.x
            self.y = event.y
        self.lastDraw = self.drawpad.create_rectangle(self.x, self.y, event.x, event.y,outline=self.fgcolor)

    def myPen(self,event):   #定义画笔方法
        self.startDraw(event)
        self.drawpad.create_line(self.x, self.y, event.x, event.y, fill=self.fgcolor)
        self.x = event.x
        self.y = event.y

    def myErasor(self,event): #定义橡皮檫方法
        self.startDraw(event)
        self.drawpad.create_line(event.x-10, event.y-10, event.x+10, event.y+10, fill=self.bgcolor)
        self.x = event.x
        self.y = event.y

    def kuaijiejian(self,event):  #使用快捷键更换颜色
        if event.char =="r":
            self.fgcolor = "#ff0000" #红色
        elif event.char =="g":
            self.fgcolor = "#00ff00" #绿色
        elif event.char =="y":
            self.fgcolor = "#ffff00" #黄色

    def stopDraw(self,event):  #释放鼠标左键处理
        self.startDrawFlag = False  #释放鼠标左键时回到最初的False,重新调用即可
        self.lastDraw=0 #0为初始化,变量不存在


root=Tk()
root.title('tk')
root.geometry(str(win_width)+'x'+str(win_height)+'+200+300')
app=Application(master=root)
root.mainloop()


Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 22493楼
JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:基于SpringSecurity实现后台登录功能 22494楼
JAVA 全系列/第六阶段:项目管理与SSM框架/Spring 22495楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 22496楼

老师,我的这个代码可以成功插入数据,可是在执行成功前会显示异常是怎么回事?

public class JdbcUtil {
    private static String driver;
    private static String url;
    private static String username;
    private static String password;
    
    static {
        ResourceBundle bundle=ResourceBundle.getBundle("jdbc");
        driver=bundle.getString("driver");
        url=bundle.getString("url");
        username=bundle.getString("username");
        password=bundle.getString("password");
        
        try {
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection(){
        Connection conn=null;
        try {
            conn= DriverManager.getConnection(url,username,password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    private static void closeStatement(Statement state){
        if(state != null){
            try {
                state.close();
            } catch (Exception e) {
// TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public static void closeConnection(Connection conn){
        if(conn != null){
            try {
                conn.close();
            } catch (Exception e) {
// TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public static void closeResource(Statement state,Connection conn){
        closeStatement(state);
        closeConnection(conn);
    }


}
public class JDBCTest {
    public void insertData(String department_name,int location_id){
        Connection conn=null;
        Statement state=null;
        try {
            conn=JdbcUtil.getConnection();
            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/zf?useUnicode=true&characterEncoding=utf8","root","zfroot");
            String sql="insert into department value(default ,'"+department_name+"',"+location_id+")";
            state=conn.createStatement();
            int flag=state.executeUpdate(sql);
            System.out.println(flag);
            } catch (Exception e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.closeResource(state,conn);
        }
    }

    public void updateData(String department_name,int location_id,int department_id){
        Connection conn=null;
        Statement state=null;
        try {
            conn=JdbcUtil.getConnection();
            String sql="update department set department_name='"+department_name+"',location_id="+location_id+" where department_id="+department_id+";";
            state=conn.createStatement();
            int flag=state.executeUpdate(sql);
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.closeResource(state,conn);

        }
    }

    public static void main(String[] args) {
        JDBCTest jdbcTest=new JDBCTest();
//        jdbcTest.updateData("策划部",6,3);
        jdbcTest.insertData("经理部",7);
    }
}

image.png

image.png

JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 22497楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 22499楼
JAVA 全系列/第二十三阶段:分布式医疗云平台/系统管理前后端开发(旧) 22500楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637