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