精华内容
下载资源
问答
  • web编程
    千次阅读 多人点赞
    2019-07-16 19:34:07

    找了蛮久的一个PDF资源,免费分享一下

    带目录,封面如下

    度盘链接:

    https://pan.baidu.com/s/1zRGp6MNos8jjXAxl-Erhlw

    提取码:

    6t4w

     

    更多相关内容
  • GoWeb编程GoWeb编程

    2019-04-04 11:17:12
    GoWeb编程GoWeb编程
  • web编程基础试题及答案.pdf
  • go web 编程

    2018-10-23 17:37:12
    golang web编程教程资源很好的东西,golang web编程教程资源很好的东西
  • Go WEB 编程 PDF

    2018-07-24 09:19:00
    Go WEB 编程 PDF Go WEB 编程 PDF Go WEB 编程 PDF Go WEB 编程 PDF
  • 这本书是GOweb编程的电子版,就是那本新加坡的,内容清晰,目录齐全,就是内容排版有一丁点问题。绝逼可下载。
  • WEB 3.0与SEMANTIC WEB编程中文版 WEB 3.0与SEMANTIC WEB编程中文版
  • Go Web编程,go语言web编程,初学者可以看看 分享给大家
  • ASP.NET MVC4 Web编程

    2017-03-22 16:30:19
    asp.net mvc4
  • Go Web编程.pdf(清晰版)

    2016-05-17 11:09:51
    Go Web编程.pdf
  • go语言web编程权威教程
  • Go Web编程.[中文版].[新加坡]郑兆雄(详细书签) Go Web编程.[中文版].[新加坡]郑兆雄(详细书签)
  • WEB编程(一)前言学习目标 WEB编程(二)拆解目标,分析页面结构 WEB编程(三)使用工具准备介绍 WEB编程(四)HTML页面框架搭建 WEB编程(五)CSS页面装修优化 WEB编程(六)JS页面动态效果控制 前言 一直想写篇...
  • Go+Web编程

    2018-05-23 12:33:39
    Go Web 编程,使用Go语言开发web程序,《Build Web Application with Golang》。
  • Go Web编程介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一起,帮读者成功地构建跨平台的应用程序,节省Go语言开发Web的宝贵时间。有了这些针对真实问题的解决方案放在手边,大多数编程...
  • ASP.NET MVC 4 Web 编程

    2018-02-23 17:07:02
    ASP.NET MVC 4 Web 编程,是一门学习asp.net mvc 入门的好书籍。
  • Go Web编程 配套资料彩图 Go Web编程 配套资料彩图 Go Web编程 配套资料彩图
  • Go Web编程.[新加坡]郑兆雄.(PDF带书签文档) Go Web编程.[新加坡]郑兆雄.(PDF带书签文档)
  • ASP.NET MVC4 Web 编程,增加了pdf目录标签
  • Go Web编程.pdf

    2016-08-12 09:29:52
    Go Web编程.pdf
  • Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典
  • go语言web编程.chm

    热门讨论 2013-01-17 12:53:03
    go语言web编程,Asta谢的开源书籍 Go Web编程.本人编译,分多情评论供后来人参考。
  • Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典Java Web编程实战宝典
  • ASP.NET MVC4 Web 编程.pdf

    2018-06-03 11:25:37
    ASP.NET MVC4 Web编程完整版PDF教程ASP.NET MVC4 Web编程完整版PDF教程ASP.NET MVC4 Web编程完整版PDF教程ASP.NET MVC4 Web编程完整版PDF教程
  • java web 编程技术实验、课后习题解答
  • 最佳 Web 编程语言都有哪些?

    千次阅读 2021-07-29 00:18:09
    译者 | 弯月出品 | CSDN(ID:CSDNnews)以下为译文:如果你是一名新晋的 Web 开发人员,那么在选择最佳 Web 编程语言时将面临很多困难。不同的编程语言支持不同的编程技...

    译者 | 弯月

    出品 | CSDN(ID:CSDNnews)

    以下为译文:

    如果你是一名新晋的 Web 开发人员,那么在选择最佳 Web 编程语言时将面临很多困难。不同的编程语言支持不同的编程技术,而且各有各的复杂性。此外,新的编程语言层出不穷,让人看得眼花缭乱。

    在本文中,我们将列出一些最适合 Web 开发的编程语言,作为参考。

    1、最佳 Web 编程语言

    以下是我们精心挑选的一些最适合Web开发的编程语言,我们会详细介绍选择各个语言的原因。

    你不必学习下面所有的编程语言,可以根据实际需要选择最合适的一种。如果你遇到困难或感到困惑,则选择 JavaScript 基本没错。

    2、JavaScript

    毫无疑问,JavaScript 是最受 Web 开发人员喜爱,且需求最高的语言之一。此外,它也是唯一一种能够同时兼顾构建 Web 应用程序、前端和后端以及移动应用程序 (React Native) 的编程语言。

    客户端的 JavaScript 非常安全,且速度很快,它可以在客户端浏览器中快速运行。此外,JavaScript 相对比较容易学习。

    JavaScript之所以能够名列最佳 Web 编程语言的榜单,原因如下:

    • 动态类型

    • 客户端验证

    • 函数式风格

    • 解释型语言

    • 基于原型

    • 支持面向对象编程

    • 可以对浏览器进行很多控制

    • 不依赖平台

    • 异步处理

    3、Python

    Python 也是最佳 Web 编程语言之一。大约44%的软件工程师都在使用这种编程语言,仅次于 JavaScript,位列第二。

    在 IT 的各个子领域内,随处可见Python 语言(例如,机器学习、人工智能或视频游戏),尤其是在科学领域。

    Python 是一种高级、对初学者友好的编程语言,它具有简单的语法,而且还支持各种库和工具。此外,Python 也可以作为面向对象或脚本语言,并且具有强大的类型,调试速度也非常快。

    Python 名列最佳 Web 编程语言榜单的原因如下:

    • 简单易学

    • 各类库

    • 良好的可读性

    • Web开发中的高人气

    • 优秀的框架

    • 后端的复杂任务

    4、PHP

    PHP也是一种深受 Web 开发人员喜爱的最佳编程语言。PHP 是一种脚本语言,主要用于 Web 应用、简单的动态站点的服务器端、WordPress、Facebook 或 Flickr 等的开发。PHP Web 开发支持多个免费开源扩展,包括 .NET、Bzip2 或 Apache。此外,它还提供了微软 SQL、MySQL、Server 等不同数据库的访问。

    PHP 开发人员可以通过 C 语言编写插件来为 PHP 添加功能。此外,PHP 从第一版开始就一直使用Perl风格的变量,可以有效地组合到 HTML 中。

    以下是PHP的一些优势:

    • 易于使用

    • PHP 软件的升级非常轻松

    • PHP 是一种开源语言

    • Web 开发成本非常低

    • PHP 的资源很容易获得

    • PHP 的语言支持可以减少web开发时间

    • 使用 PHP 可以缩短开发时间

    5、Java

    我们怎么能忘记 Java 编程语言,它是各大公司的流行选择。Java 广泛用于制作企业级的 Web 应用程序。众所周知,这种编程语言非常稳定,很多大公司都在使用它。

    如果你正在寻找最佳 Web 编程语言,则可以考虑一下 Java。另外,Java 也广泛用于 Android 应用开发。当今几乎每个企业都需要 Android 应用程序,因为 Android 拥有数十亿的用户。

    Google 开发了一款基于 Java 的卓越的 Android 开发框架:Android Studio,对 Java 开发人员来说是一个巨大的良机。

    以下是你应该在 Web 开发中选择 Java 的原因:

    • 丰富的开源库

    • 自动垃圾收集和内存分配

    • 分布式计算的理想选择

    • 支持面向对象的编程范式

    • 栈分配系统

    • 借助 Java 虚拟机功能实现最佳平台独立性

    • 高度安全

    • 支持多线程

    6、Ruby

    Ruby也是一种非常适合 Web 开发的编程语言。与Python、PHP一样,Ruby也简单易学,非常适合初学者。

    Ruby on Rails 框架可以用于开发网站,因此 Ruby 也是 Web 开发的绝佳选择。

    Rails 是一个模型-视图-控制器(model–view–controller,MVC) 框架,为数据库、网页和 Web 服务提供默认的结构。它促进了 Web 标准的使用,例如用于数据传输的 XML 或 JSON,以及用于用户界面的 CSS、HTML 和 JavaScript。

    以下是 Ruby 成为最佳 Web 开发语言的原因:

    • 开源、通用、解释型编程语言。

    • 纯面向对象语言。

    • Ruby 具有简单明了的语法。

    • 类似于 PERL 和 Python 的服务器端脚本语言。

    • Ruby 具有与 PERL 和 C++ 等相关的语法。

    • 使用 Ruby 编写的大程序很容易管理。

    • Ruby 拥有一组强大的内置函数,可直接应用到脚本中。

    7、总结

    在选择最佳 Web 开发语言时,你需要考虑很多因素。在未确定未来的发展方向之前,不能随意选择编程语言。

    你必须做一些功课,详细了解各种语言的功能和特性,还要了解为什么某种特定的语言非常适合 Web 开发。

    此外,你还需要结合实际的情况和需求权衡利弊。

    原文链接:https://www.javaassignmenthelp.com/blog/best-programming-language-for-web-development/

    福利

    入门Python的最强三件套《ThinkPython》、《简明Python教程》、《Python进阶》的PDF电子版已打包提供给大家,关注下方公众号,在后台回复关键字P3」即可获取。

    推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领AI全套资料!
    
    展开全文
  • Go Web编程 完整版 PDF

    2015-04-01 09:18:47
    Go Web编程 完整版 PDF 2015.4.1整理
  • Python Web 编程

    千次阅读 2020-09-10 21:29:48
    作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

    作者:billy
    版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

    Web 基础

    1. HTTP 协议
      我们平时都会通过百度查询内容,在这个过程中,用户浏览器被称为客户端,而百度网站被称为服务器。这个过程实质上就是客户端向服务器发起请求,服务器接收请求后,将处理后的信息(也成为响应)传给客户端。这个过程就是通过 HTTP 协议实现的。
      HTTP(HyperText Transfer Protocol)超文本传输协议,是互联网上应用最为广泛的一种网络协议。HTTP 是利用 TCP 在两台计算机(通常是 Web 服务器和客户端)之间传输信息的协议。客户端使用 Web 浏览器发起 HTTP 请求给 Web 服务器,Web 服务器发送被请求的信息给客户端

    2. Web 服务器
      当在浏览器输入 URL 后,浏览器会先请求 DNS 服务器,获得请求站点的 IP 地址(即根据 URL 地址 www.baidu.com 获取其对应的 IP 地址,如 104.193.88.123),然后发送一个 HTTP Request(请求)给拥有该 IP 的主机(百度的服务器在美国芝加哥),接着就会接收到服务器返回的 HTTP Response(响应),浏览器经过渲染后,以一种较好的效果呈现给用户。

    我们重点来看一下 Web 服务器,Web 服务器的工作原理可以概括为以下 4 个步骤:

    • 建立连接:客户端通过 TCP/IP 协议建立到服务器的 TCP 连接;
    • 请求过程:客户端向服务器发送 HTTP 协议请求包,请求服务器里的资源文档;
    • 应答过程:服务器向客户端发送 HTTP 协议答应包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理 “动态内容”,并将处理后得到的数据返回给客户端。有客户端解释 HTML 文档,在客户端屏幕上渲染图形结果;
    • 关闭连接:客户端与服务器断开连接;

    HTTP 协议的常用请求方法:

    方法描述
    GET请求指定的页面信息,并返回实体主体
    POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中
    HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
    PUT从客户端向服务器传送的数据取代指定的文档的内容
    DELETE请求服务器删除指定的页面
    OPTIONS允许客户端查看服务器的性能

    HTTP 状态码含义:

    代码含义
    1**信息,请求收到,继续处理
    2**成功,行为被成功地接收、理解和采纳
    3**重定向,为了完成请求,必须进一步执行的动作
    4**客户端错误,请求包含语法错误或者请求无法实现
    5**服务器错误,服务器不能实现一种明显无效的请求

    具体每一项代表的含义,可以参考:HTTP状态码详解

    1. 前端基础
      对于 Web 开发,通常分为前端(Front-End)和后端(Back-End)。“前端” 是与用户直接交互的部分,包括 Web 页面的结构、Web 的外观视觉表现以及 Web 层面的交互实现。“后端” 更多的是与数据库进行交互,处理相应的业务逻辑。需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等。后端的编程语言包括 Python、Java、PHP、ASP.NET 等,而前端编程语言包括 HTML、CSS 和 JavaScript。

    HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言(Hyper Text Markup Language),它不是一种编程语言,而是一种标记语言。标记语言是一套标记标签,这种标记标签通常被称为 HTML 标签,它们是由尖括号包围的关键词,比如 。HTML 标签通常是成对出现的,第一个标签是开始标签,第二个标签是结束标签。Web 浏览器的作用是读取 HTML 文档,并以网页的形式显示它们。浏览器不会显示 HTML 标签,而是使用标签来解释页面的内容。

    CSS 是 Cascading Style Sheets(层叠样式表)的缩写。CSS 是一种标记语言,用于为 HTML 文档中定义布局。例如,CSS 涉及字体、颜色、边距、高度、宽度、背景图像、高级定位等方面。运用 CSS 样式可以让页面变的美观,就像爱那个化妆前和化妆后的效果一样。

    JavaScript 是一种可以嵌入在 HTML 代码中,由客户端浏览器运行的脚本语言。在网页中使用 JavaScript 代码,不仅可以实现网页特效,还可以响应用户请求,实现动态交互的功能。例如,在用户注册页面中,需要对用户输入信息的合法性进行验证,包括是否填写了 “邮箱” 和 “手机号”,填写的格式是否正确等。

    作为 Python Web 初学者,只要掌握基本的前端知识即可。想了解更多关于前端的内容,可以参考以下两个网站:

    静态服务器

    对于 Web 开发,我们需要让用户在浏览器中看到完整的 Web 页面(也就是 HTML),在 Web 中,纯粹的 HTML 格式的页面通常被称为 “静态页面”,早期的网站通常都是由静态页面组成的。例如马云早期的创业项目 “中国黄页” 网站就是由静态页面组成的静态网站。下面通过实例结合 Python 网络编程和 Web 编程,创建一个静态服务器

    1. 创建 views 文件夹,在 views 文件夹下创建 index.html 页面作为首页,index.html 的代码如下:
    <!DOCTYPE html>
    <html lang="UTF-8">
    <head>
        <title>
            我的博客
        </title>>
    </head>>
    <body class="bs-docs-home">
    
    <!--Docs master nav-->
    <header class="navbar navbar-static-top bs-docs-nav" id="top">
    <div class="container">
        <div class="navbar-header">
            <a href="/" class="navbar-brand">我的博客</a>>
        </div>
        <nav id="bs-navbar" class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/107725117">Python 进阶之路</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/97393033">Qt 进阶之路</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/104144719">我的网址收藏</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/93847054">设计模式</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/105390364">请善待90后</a>
                </li>
                <li>
                    <a href="/contact.html">联系博主</a>
                </li>
            </ul>
        </nav>
    </div>
    </header>>
    
    <!--Page content of coursel-->
    <main class="bs-docs-masthead" id="content" tabindex="-1">
        <div class="container">
            <span class="bs-docs-booticon bs-docs-booticon-lg bs-docs-booticon-outline">自我介绍</span>
            <p class="lead">博主主要从事于客户端、嵌入式、移动端的开发工作,酷爱研发,热于分享!</p>
            <p class="lead">
                <a href="/contact.html" class="btn btn-outline-inverse btn-lg">联系博主</a>
            </p>
        </div>
    </main>
    </body>>
    </html>>
    
    1. 在 views 文件夹下创建 contact.html 文件,作为跳转页面,contact.html 的代码如下:
    <!DOCTYPE html>
    <html lang="UTF-8">
    <head>
        <title>
            我的博客
        </title>>
    </head>>
    <body class="bs-docs-home">
    
    <!--Docs master nav-->
    <header class="navbar navbar-static-top bs-docs-nav" id="top">
        <div class="bs-docs-header" id="content" tabindex="-1">
            <br class="container">
            <h1>联系博主</h1>
            <div class="lead">
                <address>
                    <br>电子邮件: <strong>123456789@qq.com</strong></br>
                    <br>地址: 上海市嘉定区安亭镇紫金大别墅区36号</br>
                    <br>邮政编码: 201711</br>
                    <br><abbr title="Phone">联系电话: </abbr>021-12345678
                </address>
            </div>
        </div>
    </header>
    
    1. 在 views 同级目录下创建 web_server.py 文件,用于实现客户端和服务器的 http 通信,具体代码如下:
    import socket
    import re
    from multiprocessing import Process
    
    # 设置静态文件根目录
    HTML_ROOT_DIR = "./views"    
    
    class HTTPServer(object):
        def __init__(self):
            # 创建 Socket 对象
            self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
    
        def start(self):
            # 设置最多连接数
            self.server_socket.listen(128)  
            print("服务器等待客户端连接...")
    
            # 执行死循环
            while True:
                # 建立客户端连接
                client_socket, client_address = self.server_socket.accept() 
                print("[%s, %s]用户连接上了" % client_address)
    
                # 实例化进程类
                handle_client_process = Process(target=self.handle_client, args=(client_socket,))
                handle_client_process.start()
                client_socket.close()
    
        # 处理客户端请求
        def handle_client(self, client_socket):
            # 获取客户端请求数据
            request_data = client_socket.recv(1024) 
            print("request data: ", request_data)
            # 按照行 ('\r', '\r\n', '\n') 分隔
            requset_lines = request_data.splitlines()   
    
            for line in requset_lines:
                print(line)
    
            # 解析请求报文
            request_start_line = requset_lines[0]   
            print("*" * 10)
            print(request_start_line.decode("gbk"))
    
            # 使用正则表达式,提取用户请求的文件名
            file_name = re.match(r"\w+ +(/[^ ]*)", request_start_line.decode("utf-8")).group(1)
    
            # 如果文件名是根目录,设置文件名为 file_name
            if "/" == file_name:
                file_name = "/index.html"
    
            # 打开文件,读取内容
            try:
                file = open(HTML_ROOT_DIR + file_name, "rb")
            except IOError:
                response_start_line = "HTTP/1.1 404 Not Found\r\n"
                response_headers = "Server: My server\r\n"
                response_body = "The file is not found !"
            else:
                # 读取文件内容
                file_data = file.read()
                file.close()
    
                response_start_line = "HTTP/1.1 200 OK\r\n"
                response_headers = "Server: My server\r\n"
                response_body = file_data.decode("utf-8")
    
            # 拼接返回数据
            response = response_start_line + response_headers + "\r\n" + response_body
            print("response data: ", response)
            # 向客户端返回响应数据
            client_socket.send(bytes(response, "gbk"))    
            client_socket.close() 
    
        def bind(self, port):
            # 绑定端口
            self.server_socket.bind(("", port)) 
    
    def main():
        http_server = HTTPServer()
        http_server.bind(8000)
        http_server.start()
    
    if __name__ == "__main__":
        main()
    
    

    运行 web_server.py 文件,然后使用谷歌浏览器访问 “127.0.0.1:8000/”,得到以下结果:

    服务器等待客户端连接...
    [127.0.0.1, 55459]用户连接上了
    request data:  b'GET / HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: zh-Hans-CN,zh-Hans;q=0.5\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363\r\nAccept-Encoding: gzip, deflate\r\nHost: 127.0.0.1:8000\r\nConnection: Keep-Alive\r\n\r\n'
    b'GET / HTTP/1.1'
    b'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
    b'Accept-Language: zh-Hans-CN,zh-Hans;q=0.5'
    b'Upgrade-Insecure-Requests: 1'
    b'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'
    b'Accept-Encoding: gzip, deflate'
    b'Host: 127.0.0.1:8000'
    b'Connection: Keep-Alive'
    b''
    **********
    GET / HTTP/1.1
    response data:  HTTP/1.1 200 OK
    Server: My server
    
    <!DOCTYPE html>
    <html lang="UTF-8">
    <head>
        <title>
            我的博客
        </title>>
    </head>>
    <body class="bs-docs-home">
    
    <!--Docs master nav-->
    <header class="navbar navbar-static-top bs-docs-nav" id="top">
    <div class="container">
        <div class="navbar-header">
            <a href="/" class="navbar-brand">我的博客</a>>
        </div>
        <nav id="bs-navbar" class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/107725117">Python 进阶之路</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/97393033">Qt 进阶之路</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/104144719">我的网址收藏</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/93847054">设计模式</a>
                </li>
                <li>
                    <a href="https://blog.csdn.net/qq_34139994/article/details/105390364">请善待90后</a>
                </li>
                <li>
                    <a href="/contact.html">联系博主</a>
                </li>
            </ul>
        </nav>
    </div>
    </header>>
    
    <!--Page content of coursel-->
    <main class="bs-docs-masthead" id="content" tabindex="-1">
        <div class="container">
            <span class="bs-docs-booticon bs-docs-booticon-lg bs-docs-booticon-outline">自我介绍</span>
            <p class="lead">博主主要从事于客户端、嵌入式、移动端的开发工作,酷爱研发,热于分享!</p>
            <p class="lead">
                <a href="/contact.html" class="btn btn-outline-inverse btn-lg">联系博主</a>
            </p>
        </div>
    </main>
    </body>>
    </html>>
    
    [127.0.0.1, 55527]用户连接上了
    request data:  b'GET /contact.html HTTP/1.1\r\nReferer: http://127.0.0.1:8000/\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: zh-Hans-CN,zh-Hans;q=0.5\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363\r\nAccept-Encoding: gzip, deflate\r\nHost: 127.0.0.1:8000\r\nConnection: Keep-Alive\r\n\r\n'
    b'GET /contact.html HTTP/1.1'
    b'Referer: http://127.0.0.1:8000/'
    b'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
    b'Accept-Language: zh-Hans-CN,zh-Hans;q=0.5'
    b'Upgrade-Insecure-Requests: 1'
    b'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'
    b'Accept-Encoding: gzip, deflate'
    b'Host: 127.0.0.1:8000'
    b'Connection: Keep-Alive'
    b''
    **********
    GET /contact.html HTTP/1.1
    response data:  HTTP/1.1 200 OK
    Server: My server
    
    <!DOCTYPE html>
    <html lang="UTF-8">
    <head>
        <title>
            我的博客
        </title>>
    </head>>
    <body class="bs-docs-home">
    
    <!--Docs master nav-->
    <header class="navbar navbar-static-top bs-docs-nav" id="top">
        <div class="bs-docs-header" id="content" tabindex="-1">
            <br class="container">
            <h1>联系博主</h1>
            <div class="lead">
                <address>
                    <br>电子邮件: <strong>123456789@qq.com</strong></br>
                    <br>地址: 上海市嘉定区安亭镇紫金大别墅区36号</br>
                    <br>邮政编码: 201711</br>
                    <br><abbr title="Phone">联系电话: </abbr>021-12345678
                </address>
            </div>
        </div>
    </header>
    

    在这里插入图片描述
    在这里插入图片描述

    WSGI 接口

    WSGI(Web Server Gateway Interface)服务器网端接口,是 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。WSGI 中存在两种角色:接受请求的的 Server(服务器)和处理请求的 Application(应用),它们底层是通过 FastCGI 沟通的。当 Server 收到一个请求后,可以通过 Socket 把环境变量和一个 Callback 回调函数传给后端 Application,Application 在完成页面组装后通过 Callback 把内容返回给 Server,最后 Server 再将响应返回给 Client。

    使用 Python 的 wsgiref 模块可以不用考虑服务器和客户端的连接、数据的发送和接收等问题,而专注以业务逻辑的实现。下面通过实例应用 wsgiref 创建页面。

    使用上个例子中 views 文件夹下的 index.html 作为主页
    在 views 文件夹同级目录下创建 application.py 文件,用于实现 Web 应用程序的 WSGI 处理函数,具体代码如下:

    def app(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/html')])   # 响应信息
        file_name = environ['PATH_INFO'][1:] or '/index.html'	# 获取 url 参数
        HTML_ROOT_DIR = "./views"					# 设置 HTML 文件目录
    
        try:
            file = open(HTML_ROOT_DIR + file_name, "rb")		# 打开文件
        except IOError:
            response = "The file is not found !"			# 如果异常,返回 404
        else:
            file_data = file.read()					# 读取文件内容
            file.close()						# 关闭文件
            response = file_data.decode("utf-8")			# 构造响应数据	
    
        return [response.encode("utf-8")]				# 返回数据
    

    在 views 文件夹同级目录下创建 web_server.py 文件,用于启动 WSGI 服务器,加载 application() 函数,具体代码如下:

    from wsgiref.simple_server import make_server			# 从 wsgiref 模块导入
    from application import app					# 导入编写的 application 函数
    
    httpd = make_server("", 8000, app)				# 创建一个服务器,IP 地址为空,端口为 8000,处理函数是 app
    print("Serving HTTP on port 8000...")
    
    httpd.serve_forever()						# 开始监听 HTTP 请求
    

    运行 web_server.py 文件,当显示 “Serving HTTP on port 8000…” 时,在浏览器地址栏输入 “127.0.0.1:8000”,就能访问 index.html 首页啦!

    Web 框架

    如果你要从零开始建立一些网站,可能会注意到你不得不一次又一次地解决一些相同的问题。这样做是非常麻烦的,并且违反了良好编程的核心原则之一 - DRY(不要重复自己)。

    有经验的 Web 开发人员在创建新站点时也会遇到类似的问题。当然,总会有一些特殊情况会因网站而异,但在大多数情况下,开发人员通常需要处理四项任务 - 数据的创建、读取、更新和删除,也称为 CURD。幸运的是,开发人员通过使用 Web 框架解决了这些问题。

    Web 框架是用来简化 Web 开发的软件框架。框架的存在是为了避免用户重新发明轮子,并且在创建一个新的网站时帮助减少一些开销。典型的框架提供了如下常用功能:

    • 管理路由
    • 访问数据库
    • 管理会话和 Cookies
    • 创建摸版来显示 HTML
    • 促进代码的重用

    事实上,框架根本就不是什么新的东西,它只是一些能够实现常用功能的 Python 文件。我们可以把框架看作是工具的集合,而不是特定的东西。框架的存在使得建立网站更快、更容易。

    前面我们学习了 WSGI(服务器网关接口),它是 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。也就是说,只要遵循 WSGI 接口规则,就可以自主开发 Web 框架。所以,各种开源 Web 框架至少有上百个,关于 Python 框架优劣的讨论页仍在继续。

    作为初学者,应该选择一些主流的框架来学习,因为主流的框架文档齐全,技术积累较多,社区繁盛,并且能得到更好的支持。下面介绍几种 Python 的主流 Web 框架:

    1. Django
      这可能是最广为人知和使用最广泛的 Python Web 框架了。Django 有世界上最大的社区和最多的包。它的文档非常完善,并且提供了一站式的解决方案,包括缓存、ORM、管理后台、验证、表单处理等,使得开发复杂的数据库驱动的网站变得简单。但是,Django 系统耦合度较高,替换掉内置的功能比较麻烦,所以学习曲线也相当崎岖;

    2. Flask
      Flask 是一个轻量级 Web 应用框架。它的名字暗示了它的含义,他基本上就是一个微型的胶水框架。Flask 把 Werkzeug 和 Jinja 粘和在一起,所以它很容易被扩展。Flask 也有许多的扩展可以供用户使用,Flask 也有一群忠诚的粉丝和不断增加的用户群。它有一份很完善的文档,甚至还有一份唾手可得的常见范例。Flask 很容易使用,用户只需要几行代码就可以写出来 “Hello World”;

    3. Bottle
      这个框架相对来说比较新。Bottle 才是名副其实的微框架 - 它只有大约 4500 行代码。它除了 Python 标准库以外,没有任何其他的依赖,甚至还有自己独特的一点儿模板语言。Bottle 的文档很详细并且抓住了事物的实质。它很像 Flask,也使用了装饰器来定义路径;

    4. Tornado
      Tornado 不单单是个框架,还是个 Web 服务器。它一开始视为 FriendFeed 开发的,后来在 2009 年的时候也给 Facebook 使用。它是为了解决实时服务而诞生的。为了做到这一点,Tornado 使用了异步非阻塞 IO,所以它的运行速度非常快;

    更多请参考

    展开全文
  • 完整版,全书共422页。推荐去买实体书,支持作者! 方便对于想要学习ASP.NET MVC Web编程的开发人员来说,《ASP.NET MVC4Web编程》无疑是最佳选择。
  • Go Web编程

    2017-09-04 09:14:56
    Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程Go Web编程

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 862,426
精华内容 344,970
关键字:

web编程

友情链接: AMXX-Gag-master.zip