Web应用技术

Web开发可以分为客户端(后端)和服务端(前端)


客户端和服务端之间是需要进行数据信息的交流的。客户端通过 http/Hypertext Transfer Protocol 协议发送请求信息给服务端,并从服务端接收响应信息。

Web 前端开发

重点:提供界面给用户进行观看和操作。


开发内容

  • html 文件:显示内容

  • CSS文件:控制界面的显示样式和效果,比如字体、大小、前景色、背景色、间距、一些动画效果等等,变好看

  • 资源文件:包括显示在界面上的图片、视频等

  • javascript 脚本:包括在html文档里面,js脚本通过浏览器内置的 js 引擎执行,实现动态网页。

  • 上述的文件(html,css,js)没法直接放到浏览器端,都是部署在后端服务器上(有些在cdn上)。当我们浏览网站的时候,浏览器先通过http协议获取这些文档,然后读取解释它们的内容,生成对应的界面呈现给我们操作。

前端工程师不仅设计实现用户界面,还要能使用js语言实现数据获取、分析处理和业务相关的逻辑。

Web后端开发

后端要开发服务进程,处理前端http请求,返回相应的数据。通常包括数据的查询、增加、删除、修改。重点是逻辑处理和架构设计(做好多服务分布式、集群式的处理大量的用户请求)。

开发内容

  • 静态文件服务方案:HTML、css、js文件的存储,提供给前端浏览器访问的服务。 一个比较大型的网站,静态文件往往会使用单独的服务器专门提供服务,甚至一部分特别消耗带宽的数据(比如视频、图片)会使用第三方的云服务厂商(比如阿里云的cdn和oss服务)。
  • API 接口设计:就是定义前端和后端交互接口规范。目前流行的是REST API 风格的接口,但是需要我们设计具体的API请求和响应消息的组成细节。(多由架构师设计)
  • 数据库设计:(1)存储方案:选择什么样的数据库,包括关系型和非关系型的数据库。(2)数据库表结构设计,要能合理、高效的存储业务数据,高效查询、修改各种关联性的数据。
  • 缓存服务和异步任务服务,云存储技术,大数据分析的需求等

Django简介

  • Python Web开发最流行的应用框架Django帮我们高效地实现后端。
  • Django是一个基于Python语言的开源免费的Web应用开发框架。它帮我们解决了Web应用开发的常见问题。使用它,我们可以把精力放在应用本身的逻辑处理上,而不用操心Web服务的基本问题。大大提高我们的开发效率。
  • Django的官方网:https://www.djangoproject.com

Django安装

输入cmd命令行
1.安装
pip install Django
2.检查版本(显示数字说明安装成功)
python -m django –version

创建项目

我们需要创建项目目录,项目目录里面保存了开发系统的所有文件。

我们可以创建d:\projects作为我们的项目所在的目录。然后从命令行窗口中进入到 d:\projects 目录,执行下面的命令创建项目目录
django-admin startproject bysms注意最后的 bysms 就是项目的根目录名。

执行上面命令后,就会创建如下的目录结构:

bysms/manage.pybysms/__init__.pysettings.py       urls.py       wsgi.py
  • 最外层 bysms/:项目根目录d:\projects\bysms\,项目文件都放在里面。
  • manage.py:一个工具脚本,用作项目管理的。以后我们会使用它执行管理操作。
  • 里面的 bysms/ 目录:python包。里面包含项目的重要配置文件。这个目录名字不能随便改,因为manage.py要用到它。
  • bysms/settings.py :Django项目的配置文件。包含了非常重要的配置项,以后我们可能需要修改里面的配置。
  • bysms/urls.py:里面存放了一张表,声明了前端发过来的各种http请求,分别由哪些函数处理。
  • bysms/wsgi.py:python组织制定了web 服务网关接口(Web Server Gateway Interface) 规范,简称wsgi。参考文档
    https://www.python.org/dev/peps/pep-3333/

遵循wsgi规范的 web后端系统,我们可以理解为由两个部分组成(wsgi web server 和 wsgi web application)。
它们通常是运行在一个python进程中的两个模块,或者说两个子系统。wsgi web server 接受到前端的http请求后,会调用 wsgi web application 的接口( 比如函数或者类方法)方法,由wsgi web application 具体处理该请求。然后再把处理结果返回给 wsgi web server, wsgi web server再返回给前端。

这两个子系统有各自负责的重点。

wsgi web server负责提供高效的http请求处理环境,可以使用多线程、多进程或者协程的机制。(代码在线程里运行,由server决定分配线程)
http 请求发送到 wsgi web server , wsgi web server 分配线程或者进程或者轻量级线程(协程),然后在这些线程、进程、或者协程里面,去调用执行 wsgi web application 的入口代码。

wsgi web application被调用后,负责处业务逻辑。业务逻辑的处理可能非常复杂,wsgi web application需要精心的设计来正确处理。(真正处理请求)
django是wsgi web application的框架,它只有一个简单的单线程wsgi web server。供调试时使用。

运行Django web服务

命令行窗口里面进入到项目根目录 ,比如d:\projects\bysms\ 然后执行如下命令:
python manage.py runserver 0.0.0.0:80
服务被启动。我们就可以在浏览器访问web服务了。

其中 0.0.0.0:80 是指定 web服务绑定的 IP 地址和端口。0.0.0.0表示绑定本机所有的IP地址,就是可以通过任何一个本机的IP (包括环回地址 127.0.0.1) 都可以访问我们的服务。80 表示是服务启动在80端口上。

Starting development server表示是开发环境。


打开浏览器,地址栏输入‘127.0.0.1’,就可以看到如下的界面,表示Django服务搭建成功,启动成功。

Django学习笔记1 Web开发简介和Django安装运行相关推荐

  1. Python学习笔记:web开发3

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. Python学习笔记:web开发2

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. JavaWeb学习笔记2 —— Web服务器简介

    JavaWeb学习笔记2 -- Web服务器简介 参考教程B站狂神https://www.bilibili.com/video/BV12J411M7Sj 相关技术 ASP: 微软:国内最早流行的就是A ...

  4. OPENMP学习笔记(1)——简介,模型,运行

    OPENMP学习笔记(1)--简介,模型,运行 简介: OpenMP的英文全称是Open Multiprocessing,一种应用程序接口(API,即Application Program Inter ...

  5. Springboot学习笔记(二)Web开发

    前言: 学习B站UP主狂神说视频笔记整理视频链接 狂神笔记链接 上篇笔记链接-Springboot学习笔记(一)快速上手 Web开发 静态资源 在以往的SpringMVC中所有静态资源或者页面应该放在 ...

  6. Python学习笔记:web开发1

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  8. Django 学习笔记(3)——用命令行创建 Django 项目和 APP

    我相信有很多同学像我一样买不起 pycharm 的专业版[狗头],所以本文就介绍如何用命令行来创建 Django 项目和 APP. 1. 创建 Django 项目 如果各位还没有安装 Django,那 ...

  9. 【海思AI芯片Hi3559A】学习笔记(1):开发环境搭建、安装SDK

    芯片资料见Hi3559A的资料包 主要参考文档:ReleaseDoc\zh\01.software\board\Hi3559A╱C V100 SDK 安装及升级使用说明.pdf 注意所有解压操作均要在 ...

  10. openstack学习笔记之三:keystone简介与手动安装部署

    1.Keystone的架构 Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.Keystone作为O ...

最新文章

  1. bat批处理文件启动Eclipse和ivy本地仓库的配置
  2. ELF文件装载链接过程及hook原理
  3. 基于numpy的多项式拟合预测人口数值
  4. mysql服务器查绑定的域名查_MySQL使用show status查看MySQL服务器状态信息
  5. 零美术基础逆袭成为动画师!你需要怎么做?
  6. 如何提升你的CSS技能?掌握这20个css技巧即可[完整版]
  7. 批处理文件中获取当前所在路径的几种方法,以及写文件到txt
  8. oracle byte 转string,C# 中 byte 转化成string
  9. MS-SQL的智能脚本智能提示失效丢失
  10. 磁盘工具无法修复磁盘怎么办
  11. 开源一款资源分享与下载工具 —— 电驴(eMule)
  12. Programming-寻找发贴水王(C)
  13. 2019杭电多校第六场 HDU6638 Snowy Smile(线段树区间合并+枚举)
  14. RTC与WebRTC有什么区别
  15. 无线降噪耳机哪个品牌好?2021年无线降噪耳机排行榜
  16. MathType中如何实现上下两行公式“=”号对齐
  17. 关于高精度地图定义的探讨
  18. iOS越狱并安装ssl kill switch解除ssl pining,抓取https包
  19. SVN之enable-auto-props自动化属性
  20. iOS开发面试—四面字节iOS客户端抖音隐私合规团队

热门文章

  1. 在matlab编辑大于号,教你怎么用MathType编辑大于或小于符号
  2. QTP网管自动化测试框架
  3. 每周学一点Egret(17)default.thm.json 文件编译小坑
  4. java答题软件_非常实用的java自动答题计时计分器
  5. vue js 前端实现PDF文件下载的三种方式 解决vue下载pdf文件打开文件后空白
  6. sublime清除html里面的空白行,Sublime Text批量删除空白行和注释代码
  7. 计算机系统盘制作,一步步教你怎样制作U盘电脑系统,以后电脑装系统不求人...
  8. 制作双系统U盘启动盘【Ventoy】
  9. wpf ui分析工具 Snoop
  10. 小甲鱼C++快速入门学习笔记