设计模式简单来说就是解决固定问题的固定办法
设计模式目前分为创建型,结构型,行为型,而工厂模式则属于创建型的设计模式
工厂模式:根据用户传入的参数创建指定的对象
代码演示:
from abc import ABCMeta,abstractmethod
class Animal(metaclass=ABCMeta):
@abstractmethod
def do_say(self):
print("Animal.do_say()")
class Dog(Animal):
def do_say(self):
print("===Dog.do_say()====")
return "狗儿汪汪叫..."
class Cat(Animal):
def do_say(self):
print("===Cat.do_say()====")
return "猫儿喵喵叫...."
class ForestFactory:
def get_object(self,animal_type):
"""
根据参数ainal_type返回指定类型的对象
:param animal_type:参数字符串
:return:
"""
return eval(animal_type)()
if __name__ == '__main__':
ff = ForestFactory()
animal = input("请输入你要实例化的动物类:")
obj = ff.get_object(animal)
result = obj.do_say()
print("result=",result)
ABCMeta:类的元类
abstractmethod:抽象方法,含有抽象方法的类一定是抽象类,抽象类不能实例化
eval(字符串):将字符串还原成原始类型
创建app的封装:
将创建app的工作封装到函数中,可以在创建对象后继续初始化其它配置
flask路由的定义:
@app.route(url, method=['GET','POST'], endpoint="端点名")
def index():
pass
参数介绍:
url: 路由路径
method: 视图允许的请求方法, 如不指定method, 则默认只允许GET请求访问视图
endpoint: 端点, 可以视为路由别名, 如果endpoint不指定, 则默认endpoint的值为视图函数名
endpoint的作用:
当请求传来一个url的时候,会先通过rule找到endpoint(通过app.url_map查看),然后再根据endpoint再找到对应的view_func
在进行反向解析时有用,可以在不改变函数名的情况下通过endpoint获取访问的路由信息
路由映射的查看
通过app.url_map查看路由映射表
通过flask routes即可看到项目的路由映射表,前提是模块名必须是app.py,如果当前主目录下没有app.py文件,则程序报错:Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" modulewas not found in the current directory.如果想解决这个保存问题咋办?设置环境变量flask_app=要运行的脚本名,例如:set flask_app=app_demo02.py
服务器的启动方式
app.run()
在flask1.0之后推荐我们使用flask run启动flask程序
(1).指定启动实例: set FLASK_APP = 脚本名,例如: set flask_app=flask_demo03.py
(2).指定启动模式: set FLASK_ENV = 'development' (注: development为开发模式, production为生产模式, 默认启动为生产模式)
(3).启动命令详解: flask run -h ipaddress -p port
flask run默认启动在127.0.0.1:5000上 ,可以使用http://127.0.0.1:5000/index或者http://localhost:5000/index访问,但是如果使用ip地址则访问失败,如果想通过IP地址访问成功则需要在启动flask程序时指定绑定的IP地址
打开命令行输入ipconfig即可查看本机所有的网络适配器信息,找到当前使用的IP地址在终端中输入命令:flask run -h 192.168.1.115 来启动flask服务器,此时只能通过IP地址,比如http://192.178.1.115:5000/index访问成功,但是使用http://127.0.0.1:5000/index和http://localhost:5000/index都访问失败,如果想通过IP地址及本机回环IP地址127.0.0.1或者主机名localhsot都能访问成功,则需要将主机名绑定到代表本机所有IP地址的0.0.0.0上,此时使用flask run -h 0.0.0.0运行flask服务器,即可使用本机所有的IP地址都能访问成功
默认情况下flask服务器绑定的端口为5000,可以通过-p参数手工指定绑定的端口号,端口号一般要大于1024,小于1024的端口大部分被系统占用了
指定启动的盘IP使用-h参数, -p指定启动的端口,例如:flask run -h 0.0.0.0 -p 8000