1.cbv的用法

from flask import Flask,views
app = Flask(__name__) class Login(views.MethodView ):
def get(self):
return "hello" app.add_url_rule("/",view_func=Login.as_view("my_login"),methods=["GET"]) app.run("0.0.0.0",5000,debug=True)

methods的用法

也可以在这里用

将cbv 中的类里面的函数变成fbv中的函数,本质上还是fbv

2.网络相关

192.168.13.0-192.168.13.255

00000000,11111111,192.168.13.1不能用

能用253个
192.168.13.130/24

11111111.11111111.11111111.00000000-11111111

192.168.1.0-192.168.1.255
192.168.13.47/16

11111111.11111111.0000000.00000000

192.168.0.0-192.168.255.255
192.168.13.61/17

11111111.11111111.10000000.00000000

192.168.0.0-192.168.127.255
192.168.13.47/30

1111111.11111111.11111111.11111100

192.168.13.0-192.168.13.3
192.168.13.47/18

11111111.11111111.11000000.00000000

192.168.0.0-192.168.63.255

3.位运算

或运算

print(255|128)#

11111111
10000000
11111111
(只要有1就为1)

非运算

print(255|128)#

11111111
10000000
01111111

与运算

print(255|128)#

11111111
10000000
10000000

4.ip地址分类

A类:255.0.0.0,包括的可用地址最多

B类:255.255.0.0

C类:255.255.255.0

5.flask上下文werkzeug

from werkzeug.serving import run_simple
from werkzeug.wrappers import Response,Request @Request.application
def app(req):
print(req.method) #get
print(req.path) #/
return Response("ok") run_simple('0.0.0.0',5000,app)

6.偏函数

from functools import partial
def add(a,b):
return a+b par_add=partial(add,1)
print(par_add(2))#

应用:函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。

7.线程安全

import time
import threading
from threading import local class Foo(local):
pass foo = Foo()
"""
{
7172:[request,session],
8076:[request,session],
5784:[request,session],
}
""" def add(i):
foo.num=i
time.sleep(1)
print(foo.num,i,threading.current_thread().ident) for i in range(20):
th = threading.Thread(target=add,args=(i,))
th.start()

8.wsgiref实例

对于python web程序来说,一般会分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理。应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出现了众多的Web框架,例如:Django、Flask、web.py 等。不同的框架有不同的开发方式,但是无论如何,开发出的应用程序都要和服务器程序配合,才能为用户提供服务。这样,服务器程序就需要为不同的框架提供不同的支持。这样混乱的局面无论对于服务器还是框架,都是不好的。对服务器来说,需要支持各种不同框架,对框架来说,只有支持它的服务器才能被开发出的应用使用。这时候,标准化就变得尤为重要。我们可以设立一个标准,只要服务器程序支持这个标准,框架也支持这个标准,那么他们就可以配合使用。一旦标准确定,双方各自实现。这样,服务器可以支持更多支持标准的框架,框架也可以使用更多支持标准的服务器。

WSGI(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app与web server之间接口格式,实现web app与web server间的解耦。

python标准库提供的独立WSGI服务器称为wsgiref。

from wsgiref.simple_server import make_server

def runserver(environ,start_response):
start_response("200 ok",[("Content-Type","text/html")])
return [bytes("<h1>hello aa</h1>",encoding="utf-8")] if __name__ == "__main__":
httpd=make_server("",8000,runserver)
print("运行了")
httpd.serve_forever()

最新文章

  1. Mac上idea快捷键
  2. 【SPOJ 7258】Lexicographical Substring Search
  3. Program C 暴力求解
  4. 如何让Visual Studio 清除最近打开项目 关闭上次未关闭的标签窗口
  5. jquery插件封装思路整理
  6. Arithmetic Expression
  7. xcode 必用插件二
  8. (转载)javascript实现弹出对话框
  9. bzoj1649 [Usaco2006 Dec]Cow Roller Coaster
  10. 《Microsoft SQL Server企业级平台管理实践》笔记
  11. VIM用法
  12. 使用IntelliLock加密授权你的.Net程序
  13. linux虚拟机下安装samba
  14. Element ui表格展示图片问题
  15. 修真院java后端工程师学习课程--任务1(day one)
  16. dojo中的dojox/grid/EnhancedGrid表格报错
  17. casio计算器计算统计数据
  18. 一个ArrayList在循环过程中删除,会不会出问题,为什么?
  19. TP5 首页导航一级和二级分类
  20. Docker之My sql 之旅

热门文章

  1. WPF 获得当前输入法语言区域
  2. uva 11552 Fewest Flops 线性dp
  3. node assert模块 Study.1
  4. 使用ant对项目进行多渠道打包时遇到问题记录
  5. MongoDB 通过自带工具命令进行备份表,再将备份表还原出数据
  6. matlab 矢量化编程(四)—— 标量函数转化为能够处理矢量的函数
  7. ODBC、OLEDB和ADO关系
  8. multi-node和generic-pool两大利器
  9. jquery通过索引获取元素
  10. jquery获取选中的值和设置单选扭选中