会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132603个问题
Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 24646楼

image.png

image.png


老师您好,我有三个问题,麻烦老师您尽快帮我解答下,三个问题分别对应图片中的1,2,3

第一个问题,为什么我的浏览器控制台的console那里有很多错误,我自己找了很久没找出来到底怎么回事,还是一直提示有多少多少个错误。

第二个问题,请求地址改成了http://localhost:5000,是不是就是意味着以这个地址去访问后端,换个意思说是不是将http://localhost:8080改成了http://localhost:5000,才能去访问后端项目。

第三个问题,我的login访问后端项目也成功了,为什么不能像视频里的老师那样,在Preview中能看见 返回的数据,其他浏览器我也试了还是不行。

老师您好,前后端两个项目我都上传了,麻烦老师帮我看看,代码,格式,结构,有什么习惯建议,麻烦老师都可以提一提。

flask_shop.zip

vue_flask_shop.zip


Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 24647楼

服务端:

package com.sxt;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class TwoWaySocketServer {
    public static void main(String[] args) {
        ServerSocket serverSocket =null;
        Socket socket =null;
        BufferedReader br=null;
        Scanner scanner =null;
        PrintWriter pw =null;
        try {
            //服务器需要监听的端口
            serverSocket = new ServerSocket(8888);
            System.out.println("服务端启动,开始监听....");
            //socket包装erverSocket.accept(),大白话说当监听到客户端来消息时返回给socket。并且启动监听accept();
            socket = serverSocket.accept();
            //读取客户端发来的消息
            ////getInputStream()字节流, InputStreamReader转字符流,BufferedReader转字符串
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //创建键盘输入对象
            scanner = new Scanner(System.in);
            //向客户端发送消息
            pw = new PrintWriter(socket.getOutputStream());
            while (true){
                //读取客户端发送的消息
                String str = br.readLine();
                System.out.println("客户端说:"+str);
                /*
                if ("esc".equals(str)){
                    break;
                }
                */
                //键盘输入对象,要向客户端发送信息
                String outPrint = scanner.nextLine();
                pw.println(scanner);
                pw.flush();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (serverSocket!= null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (br!= null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (scanner!= null){
                scanner.close();
            }
            if (pw!=null);
            pw.close();
        }
    }
}

客户端:

package com.sxt;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

public class TwoWaySocketClient {
    public static void main(String[] args) {
        Socket socket = null;
        Scanner scanner = null;
        PrintWriter pw = null;
        BufferedReader br = null;
        try {
            socket = new Socket("192.168.31.250",8888);
            //创建键盘输入对象
            scanner = new Scanner(System.in);
            //创建向服务器发送消息的输出流对象
            pw = new PrintWriter(socket.getOutputStream());
            //创建向服务器读取消息的输入流对象
            //socket.getInputStream()拿到的是一个字节流,先转字符在转字符串
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //使用循环处理数据
            while (true){
                //拿到要对服务器发送的消息
                String strOut = scanner.nextLine();
                //向服务器发送消息
                pw.println(strOut);
                pw.flush();
                //读取服务器发来的消息
                String strInput = br.readLine();
                System.out.println("服务端说"+strInput);
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if (pw != null){
                pw.close();
            }
            if (br != null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (scanner != null){
                scanner.close();
            }

        }
    }
}

运行结果:


image.png

1:老师好。我这个服务端说的话怎么是乱码啊,找不到什么原因。

2:还有个问题就是不知道怎么回事,服务端和客户端启动之后发送消息有时候两边的接收不到信息






JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 24648楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 24649楼

"""开发记事本软件菜单"""
from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *

class Application(Frame):

    def __init__(self,master=None):
        super().__init__(master)
        self.master = master
        self.textpad = None
        self.pack()
        self.creatWidget()

    def creatWidget(self):
        # 创建主菜单栏
        menubar = Menu(root)

        #创建子菜单
        menuFile = Menu(menubar)
        menuEdit = Menu(menubar)
        menuHelp = Menu(menubar)

        #将子菜单加入到主菜单栏
        menubar.add_cascade(label="文件(F)", menu=menuFile)
        menubar.add_cascade(label="编辑(E)", menu=menuEdit)
        menubar.add_cascade(label="帮助(H)", menu=menuHelp)

        #增加菜单项
        menuFile.add_cascade(label="新建", accelerator="ctrl+n", command=self.test)
        menuFile.add_cascade(label="打开", accelerator="ctrl+o", command=self.test)
        menuFile.add_cascade(label="保存", accelerator="ctrl+s", command=self.test)
        menuFile.add_separator() #添加分界线
        menuFile.add_cascade(label="退出", accelerator="ctrl+q", command=self.test)

        #将主菜单栏添加到根窗口
        root["menu"] = menubar

        #文本编辑区
        self.textpad = Text(root, width=50, height=30)
        self.textpad.pack()

        #创建上下菜单
        self.contextMenu = Menu(root)
        self.contextMenu.add_command(label="背景颜色", command=self.test)

        #为右键绑定事件
        root.bind("<Button-3>", self.creatContextMenu)

    def test(self):
        pass

    def creatContextMenu(self, event):
        #菜单在鼠标单击的坐标右边显示
        self.contextMenu.post(event.x_root, event.y_root)


if __name__=="__main__":
    root=Tk()
    root.geometry("450x300+200+300")
    root.title("记事本")
    app = Application(master=root)
    root.mainloop()


image.png老师为什么我的这个显示不全?然后我不加

from tkinter import *

会报错

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 24650楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 24653楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 24655楼

QQ图片20210223224357.png

老师,请问这里为什么照着代码抄也是报错的呢?

JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 24656楼
人工智能/第八阶段:机器学习-决策树系列/决策树算法 24657楼
JAVA 全系列/第十一阶段:分布式RPC调用和分布式文件存储/FastDFS 24658楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 24660楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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