美文网首页
python web开发 了解基础点

python web开发 了解基础点

作者: AAA年华 | 来源:发表于2018-01-10 10:55 被阅读0次

    python web开发

    [if !supportLists]1-1 [endif]预期目标

    技能:学习[Django] [Tornado] [Flask]web开发框架

    经验:熟悉[门户网站\在线电商\管理平台、项目开发]开发流程和处理过程

    总结:掌握[学习过的所有知识点的]主线!

    检测一个技能学会与否的关键

    3W1H

    what?

    where?

    why?

    how?

    1-2 开发基础

    要学习web开发,需要掌握的基本技能

    计算机基础知识[了解]

    网页开发[HTML/CSS]

    网页动态效果[Js/JQ]

    网页快速搭建[Bootstrap]

    网络相关知识[传输协议]

    数据库相关

    数据相关知识[数据安全(加密解密)]

    服务器后端web应用程序开发

    1-3]回顾:前端开发

    HTML:超文本标记语言

    超文本:不仅仅能表示简单的文字

    HTML的目的:按照指定的格式在浏览器中展示数据

    标记/标签:选择文本~成对标记/标签、单标记/标签

    标签的类型:

    行标签:标签前后不换行、不能设置宽度和高度[display:inline]

    行内块标签:标签前后不换行,可以设置宽度和高度[display:inline-block]

    块标签:标签前后自动换行,可以设置宽度和高度[display:block]

    常用的标签:

    span\p\br\hn\em\i\

    form\input[text/password/checkbox/radio/url/email/..]

    CSS:对于HTML标签选中的内容进行样式修饰

    定位样式

    字体样式

    尺寸样式

    背景样式

    more等等

    盒子模型:

    传统盒子模型[使用了一堆标签 和他们的定位样式以及内容样式,操作展示网页布局]

    盒子:规范网页布局的核心

    分析盒子的意义——网页开发——无障碍!

    网页布局:通过对整体网页的结构分析,完成盒子的嵌套进行网页布局的实现

    网页开发:网页布局->颜色填充->部分网页布局->颜色填充->..->内容填充

    网页快速开发:

    网页开发流程:

    产品:UI设计网页-> [产品经理]-> 前端开发网页-> [产品经理 交付]

    工具:BS快速搭建网页-> 开发后端程序-> 部署运行

    web阶段:

    Django 3周[2+1]

    Tornado 1周[4+1]

    Flask 1周[1+4]

    web概述[web基础]

    Django 入门[快速了解]

    Django-----

    1. web概述

    web:网络

    网络:多台互相连接的计算机组成的可以通信的一个组成部分——网络

    规模比较小:局域网

    规模较大:城域网

    规模很大:[相对于全球——天朝]大城域网

    规模相当大:全球网络~广域网

    web软件:网络软件

    2. 软件的分类

    软件:一种可执行的计算机指令的集合——程序!程序的宏观体现:软件

    >> 理解:所谓软件,就是在电脑上安装的可执行的应用程序!

    >> 社交软件:QQ、微信、陌陌、钉钉、微博、Facebook..

    >> 办公软件:Mircosoft office、金山office、…

    >>> 办公系统:OA系统

    >> 网络软件:更多的指代动态网站

    根据软件的使用是否需要联网:[为什么要用软件!]

    1) 单机软件:软件的使用不需要联网,如CS1.6、红警、office、画图、扫雷

    a) 不会被取代,但是使用受到很大的局限

    2) [endif]网络软件

    a) [endif]会越来越流行——【重点】

    根据软件使用过程中是否需要下载安装包

    1) C/S结构:Client-Server 客户端服务器软件

    a) 在自己的客户端电脑上,下载一个安装包程序,安装软件之后,才能正常使用软件提供的各种功能

    b) QQ

    c) 特点1:软件需要的所有文件,都直接从本地安装文件夹中获取,速度和效果很好

    d) 特点2:软件如果有新功能更新,需要重新下载安装包

    2) B/S结构:Browser-Server浏览器服务器软件

    a)在自己的客户端电脑上,只需要有一个浏览器,就可以使用软件提供的各种功能

    b) 淘宝

    c) 特点1:软件需要的所有文件,都需要通过网络进行获取,速度和效果较较好

    d)特点2:直接在服务器端更新,客户端不做任何处理就可以使用新功能!

    3)目标:当网速不在是问题,B/S结构的软件会是现在和将来的趋势

    a) 重点:B/S结构的网络软件

    关于网站:

    网站:通过浏览器中输入Url地址访问的在线的服务,称为网站

    静态网站:纯网页,网页中的内容是固定的,不会变化的!将单纯的这样的网页部署在网络服务器中,其他人就可以通过浏览器进行访问查看,这样的网站成为静态网站,主要用来进行信息展示:学校门户网站

    动态网站:数据在网页中,是动态添加上的,并在网站的使用过程中,会伴随着大量的数据动态处理过程!

    网页中的数据是动态添加和变化的[商品详情页],并且网站中有大量的数据处理过程、这样的网站称为动态网站,也称为web软件[web应用程序]

    PS:动画网页和动态网站

    动画网页:是网页中有动画特效,但是所有的数据内容都是提前在网页中固定写好的!

    动态网站:网页中可能会没有动画,但是数据是动态添加的,并且会有数据运算和交互

    网络传输协议

    什么是协议?

    数据交互的双方,为了保障数据正确的传输,而协商计议的一种数据交互方式

    发送方[发送数据(操作方式)]à 接受方[接受数据(操作方式)]

    不管什么样的处理操作方式,数据本身都不会发生变化

    发送的数据,如果接收方没有做正确的处理,会产生[乱码]

    为什么要有协议?

    目的:为了保障数据的正确传输[发送正确、接受正确、展示正确]

    原因:因为数据的传输,实在不同的个体之间进行传输的,不同的个体处理数据的方式可能不一致~必须通过协议让数据传输的双方按照一致的操作处理数据

    协议是怎么制定的?

    网络互联非盈利组织[OSI]~欧洲计算机制造协会联盟[ISO]—>制定了一套协议标准

    ISO/RM七层协议标准[简化的4层协议标准]

    所有编程语言的发展史à 标准的制定史

    常见的都有什么协议?

    FTP/TFTP/...

    协议是专门用来格式化定义数据传输的~传输数据~传输端口

    协议怎么使用?

    在具体的功能开发过程中,软件开发时约定使用

    HTTP:超文本传输协议~约定使用80端口;FTP[20/21];SSH[22];

    HTTPS[443]

    再说HTTPS

    请简单描述HTTP和HTTPS的区别?

    请简单描述数据安全方面,关于数据加密的一些手段?

    先说加密:

    什么是加密

    加密:通过一定的数据算法,将原始的数据进行混淆运算,生成了一种和原始数据不一致的数据,~这个新生成的数据,就是被加密的数据

    加密的核心:算法

    明文:原始数据

    密文:加密后的数据

    [if !supportLists]l [endif]加密的方式

    单向加密:只需要加密,不需要解密的方式,如~用户登录密码[新用户注册时,输入了账号+密码,将用户的账号+(加密的密码)存储到数据库;用户登录时,输入账号+密码,将用户输入的账号+(加密的密码) 和数据库中的账号+(加密的密码) 进行比较,相同则登录成功—就可以对用户的登录密码进行保护]

     

    双向加密需要加密,同时需要解密的方式,如~用户在电商网站进行支付操作时,需要输入支付密码~为了保证安全性,需要对支付密码进行深层加密之后进行传输,服务器获取到被加密的支付密码~需要解密之后,再调用支付宝接口进行支付操作!

    双向加密~根据不同的加密解密方式,可以区分为两种操作

    对称加密:加密和解密使用同一套秘钥[算法的核心]

    非对称加密:加密和解密使用不同的秘钥,典型应用如HTTPS的加密通道

    再说HTTPS:使用数字签名证书SSL提供了数据传输安全通道的HTTP协议

    再说加密:

    为了提高数据的安全性,并不一定对于明文数据直接加密,而是通过各种算法组合、迭代加密次数、添加盐值混淆的手段,提高数据的安全性

    明文:”admin”

    加密:1混淆盐值:’manager’~2迭代加密md5()加密1880次~3得到最终数据

    开始进入web的世界!

    目的:数据共享

    通过提供服务器,在服务器上承载共享的数据,让在网络中的其他计算机可以分享到服务器上的数据,web数据共享

    术语:

    服务器:提供服务访问的机器

    硬件服务器:如个人PC、刀片等等

    软件服务器/web服务器:安装在操作系统上,专门提供数据访问服务的软件,如网络编程时开发的服务端程序、比较成熟的服务器~tomcat/tomee/apache/nginx/uwsgi..

    客户端:作为服务器的用户存在的终端~客户端[访问客户所在的终端]

    访问服务器的所有的用户,可以是PC、平板、手机、…

    主机名称:HOST~在网络中工作的一台PC的名称,在网络中通常通过IP表示

    域名:IP地址的一种简易记忆方式~通过自然人比较容易记忆的字符串,替代了复杂的ip地址,如:www.baidu.com-> [DNS域名解析] ->115.239.211.112

    端口:应用程序和网络进行通信的接口

    资源路径:访问的具体的文件夹路径http://www.baidu.com/index.html

    web项目结构

    web项目:【服务端】

    两部分[服务器 | web应用程序(web app)]

    [if !supportLists]l [endif]开发接口函数

    def app(env, response):

    # env:环境参数,包含了请求中的所有信息

    # response:响应参数~包含了响应中可以设置的数据

    response(“200 OK”, [(“Content-type”, “text/html”)])

    msg = “这是一条数据”

    return [msg.encode(“gbk”)]

    注意:就是一个普通函数,这个普通函数被加载到服务器中变成了当前web应用程序的接口函数

    [if !supportLists]l [endif]开发服务器

    from wsgiref.simple_server import make_server

    # 创建服务器对象make_server(HOST, PORT, FUNCTION)

    server = make_server(“”, 8000, app)

    # 启动服务器

    server.serve_forever()

    使用了内置的实现了wsgi网关接口协议的服务器

    开发比较简单!

    >> 明天的开发,会更加简单!

    最底层[C/C++]à python开发[网络编程]à 内置[wsgi]à 开发服务器

    扩展1:关于请求方式

    请求:客户端通过url地址向服务器发送的一次数据成为请求[request]

    HTTP1.1标准中,制定了8种请求方式,常见的有四种请求方式,常用的有两种请求方式

    GET:向服务器请求获取数据

    POST:向服务器提交[更新]数据

    PUT:向服务器提交[添加]数据

    DELETE:向服务器请求删除数据

    HEADER:

    OPTIONS:

    CONNECTION:

    TRACE:

    备注:HTTP1.1标准中,定义了不同的请求方式表示不同的含义,其实在项目实际操作过程中,最常用的就是GET/POST两种方式,都是和服务器进行数据交互的!

    扩展2:请求状态码

    在计算机程序开发过程中,NB人喜欢使用整数的方式表示特定的含义

    在web开发过程中,请求返回数据结果,也会有一种错误码方式展示请求结果

    200:表示请求成功

    402:请求需要收费

    403:请求被禁止访问

    404:请求的资源没有找到

    500:表示服务器出错了…

    【重要】

    概念题[面试题]

    [if !supportLists]² [endif]请简要描述HTTP和HTTPS请求协议的区别?

    [if !supportLists]² [endif]请描述常见的web开发技术,描述不同的开发语言的开发优势?描述python在web应用开发方面的优势?

    [if !supportLists]² [endif]什么是WSGI?

    [if !supportLists]² [endif]什么是web接口?

    操作题

    [if !supportLists]u [endif]可以独立开发wsgi接口支持的web应用程序[demo01.py]

    [if !supportLists]u [endif]可以参考开发无常薄 小应用程序[不同的请求URL,处理不同的功能]

    扩展题

    [if !supportLists]l [endif]请简要描述get请求方式和post请求方式的区别!

    相关文章

      网友评论

          本文标题:python web开发 了解基础点

          本文链接:https://www.haomeiwen.com/subject/rrannxtx.html