案例:返回浏览器需要的页面http服务器-代码实现

import socket
import re


def service_client(new_socket):
    """为这个客户端返回数据"""

    # 1. 接收浏览器发送过来的请求 ,即http请求
    # GET / HTTP/1.1
    # .....
    request = new_socket.recv(1024).decode("utf-8")
    # print(">>>"*50)
    # print(request)

    request_lines = request.splitlines()
    print("")
    print(">" * 20)
    print(request_lines)

    # GET /index.html HTTP/1.1
    # get post put del
    file_name = ""
    ret = re.match(r"[^/]+(/[^ ]*)", request_lines[0])
    if ret:
        file_name = ret.group(1)
        # print("*"*50, file_name)
        if file_name == "/":
            file_name = "/index.html"

    # 2. 返回http格式的数据,给浏览器

    try:
        f = open("./html" + file_name, "rb")
    except:
        response = "HTTP/1.1 404 NOT FOUND\r\n"
        response += "\r\n"
        response += "------file not found-----"
        new_socket.send(response.encode("utf-8"))
    else:
        html_content = f.read()
        f.close()
        # 2.1 准备发送给浏览器的数据---header
        response = "HTTP/1.1 200 OK\r\n"
        response += "\r\n"
        # 2.2 准备发送给浏览器的数据---boy
        # response += "hahahhah"

        # 将response header发送给浏览器
        new_socket.send(response.encode("utf-8"))
        # 将response body发送给浏览器
        new_socket.send(html_content)

    # 关闭套接
    new_socket.close()


def main():
    """用来完成整体的控制"""
    # 1. 创建套接字
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    # 2. 绑定
    tcp_server_socket.bind(("", 7890))

    # 3. 变为监听套接字
    tcp_server_socket.listen(128)

    while True:
        # 4. 等待新客户端的链接
        new_socket, client_addr = tcp_server_socket.accept()

        # 5. 为这个客户端服务
        service_client(new_socket)

    # 关闭监听套接字
    tcp_server_socket.close()


if __name__ == "__main__":
    main()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我很乐意为您介绍JavaScript实现房贷计算器的方法。 首先,我们需要了解房贷计算器的计算公式。一般来说,房贷计算器需要计算出每月还款金额、还款总额、支付利息总额等指标。这些指标的计算公式如下: 每月还款金额 = [贷款本金 × 月利率 × (1 + 月利率)^还款月数] ÷ [(1 + 月利率)^还款月数 - 1] 还款总额 = 每月还款金额 × 还款月数 支付利息总额 = 还款总额 - 贷款本金 了解了计算公式之后,我们就可以开始编写JavaScript代码了。以下是一个简单的房贷计算器实现代码示例: ```javascript // 获取页面元素 var loanAmount = document.getElementById("loan-amount"); var loanTerm = document.getElementById("loan-term"); var interestRate = document.getElementById("interest-rate"); var calculateButton = document.getElementById("calculate-button"); var resultMonthlyPayment = document.getElementById("result-monthly-payment"); var resultTotalPayment = document.getElementById("result-total-payment"); var resultTotalInterest = document.getElementById("result-total-interest"); // 计算每月还款金额 function calculateMonthlyPayment(loanAmount, loanTerm, interestRate) { var monthlyInterestRate = interestRate / 1200; // 月利率 var totalPayment = loanAmount * (1 + monthlyInterestRate * loanTerm); // 还款总额 var monthlyPayment = totalPayment / loanTerm; // 每月还款金额 return monthlyPayment.toFixed(2); // 保留两位小数 } // 计算房贷支付指标 function calculateLoanPayments() { var loanAmountValue = parseFloat(loanAmount.value); var loanTermValue = parseFloat(loanTerm.value); var interestRateValue = parseFloat(interestRate.value); var monthlyPayment = calculateMonthlyPayment(loanAmountValue, loanTermValue, interestRateValue); var totalPayment = monthlyPayment * loanTermValue; var totalInterest = totalPayment - loanAmountValue; resultMonthlyPayment.innerHTML = monthlyPayment.toFixed(2); resultTotalPayment.innerHTML = totalPayment.toFixed(2); resultTotalInterest.innerHTML = totalInterest.toFixed(2); } // 注册计算按钮点击事件 calculateButton.addEventListener("click", calculateLoanPayments); ``` 在上面的代码示例中,我们首先通过`document.getElementById()`方法获取了页面中的各个元素,然后定义了一个计算每月还款金额的函数`calculateMonthlyPayment()`,最后定义了一个计算房贷支付指标的函数`calculateLoanPayments()`。在`calculateLoanPayments()`函数中,我们获取了用户输入的贷款金额、贷款期限和利率,然后调用`calculateMonthlyPayment()`函数计算每月还款金额,并根据公式计算出还款总额和支付利息总额。最后,我们将计算结果显示到页面中相应的元素中。 最后,我们还为计算按钮注册了一个点击事件,当用户点击按钮时,会自动计算房贷支付指标并显示到页面上。 以上就是一个简单的房贷计算器JavaScript实现方法。希望可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值