初识flask-app的封装及工厂模式

设计模式简单来说就是解决固定问题的固定办法

设计模式目前分为创建型,结构型,行为型,而工厂模式则属于创建型的设计模式

工厂模式:根据用户传入的参数创建指定的对象

代码演示:

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值