flask框架基础总结

一,HTTP协议 HTTPS协议 不同 为什么安全?

(1)http协议是一种网络哟传输协议,规定了浏览器和服务器之间的通信方式。位于应用层(传输信息都是明文方式,不安全,容易被人拦截,篡改)

(2)为了通信安全,使用对称加密方式,

(在发送之前,使用相同的秘匙对数据进行加密和解密)(这种方式虽然在网络中是以密文呈现,但是容易让人拦截破解,也不算安全.)

(3)使用非对称加密方式,

非对称加密包含一组秘匙,公匙和私匙:明文可以用公钥加密,用私钥解密,并且只能用私钥解密,不能用公钥解密;也可以用私钥加密,公钥解密,并且只能有公钥解密。

流程如下

a、浏览器生成一个随机秘钥。

b、浏览器向服务器请求公钥。

c、服务器向浏览器发送它的公钥。

d、浏览器接收服务器发送的公钥,并使用公钥加密随机生成的对称加密秘钥,发送给服务器。

e、服务器接收浏览器发送的数据,用自身私钥解密,得到,对称加密秘钥。

f、至此,浏览器和服务器可以使用对称加密秘钥相互通信。

用这种方式仍然存在隐患,在进行第3步和第4步时候,中间人会在服务器放松公钥给浏览器时候,截取数据,把公钥修改成自己的发送给浏览器,这时浏览器就无法验证公钥的准确性.

(4)使用httos数字证书保证数据安全

数字证书是第三方机构,给网站唯一身份证明。

当浏览器请求公钥时,服务端不单单发送公钥,而是发送包含公钥的数字证书。

浏览器解密时如下:

a、首先查看是否在有效期内,若失效则不再发送随机对称秘钥;

b、找到第三方机构名称,通过对照找到第三发机构公钥,解密数字签名,得到一个hash1值。

c、通过同样的方式,根据服务端网址等信息,使用签名算法,生成hash2.

d、将hash1和hash2,对比,如果相同,则身份验证成功。

e、身份验证成功后,使用同样的机构公钥解密网站公钥。

f、浏览器使用解密后的公钥发送对称秘钥给服务端。

https的主体思想,ip模型上加了ssl层。



二,网络七层塔协议:

七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

物理层:    物理传输、硬件、物理特性(用于俩个硬件之间的通讯)

数据链接层:    定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

传输层:      发送大量数据的时候用,传输数据包(确保了数据的不丢包,但是速度较慢)

网络层:       即路由器,交换价那些具有寻址功能的设备所实现的功能。这一层定义的是IP地址,通过IP地址寻址。所以产生了IP协议。

会话层:      会话层的作用就是建立和管理应用程序之间的通信。 

表示层:    解决不同系统之间的通信语法问题

应用层:    用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。(主要功能:规定应用程序的数据格式。)

三,format的用法

(1)通过位置:

    print'{0},{1}'.format('chuhao',20)

(2)通过关键字

    print'{name},{age}'.format(age=18,name='chuhao')

    class Person:

        def__init__(self,name,age):

                self.name = name

                self.age = age

        def__str__(self):

            return 'This guy is {self,name},is {self,age} old'                        .fromat(self.self)

(3)通过映射list

a_list = ['chuhao',20,'china']

print'my name is {0[0]},from {0[2]},age is {0[1]}'.format(a_list)

########      my name is chuhao,from china,age is 20

(4)通过映射 dict

    b_dict = {'name':'chuhao','age':20,'province':'shanxi'}

    print'my name is {name}, age is {age},from {province}'.format(**b_dict)

(5)填充与对齐

print'{:>8}'.format('189')

######      189

print'{:0>8}'.format('189')

#####    00000189

print'{:a>8}'.format('189')

#####   aaaaa189

(6)精度与类型f

#保留两位小数

print'{:.2f}'.format(321.33345)

#####  321.33

(7)用来做金额的千位分隔符

print'{:,}'.format(1234567890)

####   1,234,567,890

(8)其他类型 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制

print'{:b}'.format(18)    #二进制 10010

print'{:d}'.format(18)#十进制 18

print'{:o}'.format(18)#八进制 22

print'{:x}'.format(18)#十六进制12


四、Django中间件 具体执行流程 有return和没有return区别

1、执行完所有的request方法 到达视图函数。

2、执行中间件的其他方法

3、经过所有response方法 返回客户端

如果其中一个中间件里request方法里return了值,就会执行当前中间件的response方法,然后返回给客户  然后报错,不会执行下个中间件

列如:

MIDDLEWARE = [

#注意CorsMiddleware要配置在CsrfViewMiddleware前

    'corsheaders.middleware.CorsMiddleware',

'django.middleware.security.SecurityMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',

'django.middleware.common.CommonMiddleware',

'django.middleware.csrf.CsrfViewMiddleware',

'django.contrib.auth.middleware.AuthenticationMiddleware',

'django.contrib.messages.middleware.MessageMiddleware',

'django.middleware.clickjacking.XFrameOptionsMiddleware',

]

五、Flask今天的所学知识点

1,Flask框架属于轻量级框架,只提供最核心的功能.

2,运用flask框架时候

from flask import Flask

'''

__name__:表示当前的模块名字

创建Flask对象,Flask会以传入模块的位置当做家目录

'''

app = Flask(__name__)

@app.route('/')  # 代表首页

def hello_world():  # 视图函数

    return 'Hello World!'  # 返回内容

if __name__ == '__main__':

    app.run()  # 运行程序

浏览器地址:127.0.00.1:5000

3,flask参数

(1)a,    # 配置文件

app.config.from_pyfile('config.cfg')

b,      配置DEBUG参数时候三种方式

字典配置   app.config["DEBUG"] = True

对象上配置    app.debug = True

参数传入配置  app.run(debug=True)

(2)取参时候:

函数中取时:

app.config.get('THST')

current_app.config.get('THST')

函数外:

app.config["TEST"] = 'test'

4,配置路由

1,只需要在函数的装饰器写入

@app.route('/center')

2,重定向

return redirect(url_for('index'))

3,需要定义请求方式的时候(mtehods里面加入允许的请求方式)

@app.route('/login',methods=['POST'])

5,转换器

default:    接受字符串,默认转换器

stirng:    接受字符串,跟默认一样

int:    接受整数

float:    同 int ,但是接受浮点数

uuid:    唯一识别码

path:    和默认的相似,但也接受斜线

用到时候代码如下:

#整数形式,要想改变请求地址中center/后面的参数只需要改变int改为自己允许的形式就好(上面)

@app.route('/center/<int:uid>')     # 代表个人中心页

        def center(uid):    # 视图函数

            return 'your uid %s' % uid     # 返回内容

请求地址:127.0.00.1:5000:center/1


(2)优化转换器(代码如下)

from werkzeug.routing import BaseConverter

#自定义转换器

class MyConverter(BaseConverter):

        def __init__(self, map, re):      

                    super().__init__(map) # 调用父类 

                    self.regex = re # 转换器的正则规则

app.url_map.converters['re'] = MyConverter # 注册

@app.route('/center/<re(r"\d{5,10}"):uid>') # 代表个人中心页def center(uid): # 视图函数 

             return 'your uid %s' % uid # 返回内容

@app.route('/login/<re(r"1[3456789]\d{9}"):phone>') # 代表登录页

def login(phone): # 视图函数 

             return 'your phone %s' % phone # 返回内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容