首页 > 技术文章 > flask 的简单拆分

liangliangzz 2018-12-06 21:20 原文

创建结构如图:自己去调整

#创建flask文件之后生成的app.py重命名为manage.py,以下代码是manage.py里面的内容
from flask_script import Manager from app import create_app app=create_app()#调用注册的app manage = Manager(app)#模仿django,可以使用Python manage.py runserver运行程序 if __name__ == '__main__': manage.run()

 

#创建新文件 __init__.py 。以下代码是里面的内容
from
flask import Flask from app.views import blue #注册app def create_app(): app = Flask(__name__) app.register_blueprint(blueprint=blue)#加载蓝图 return app
#创建views.py文件;
import
uuid from flask import Blueprint, request, render_template, make_response #蓝图:一个蓝图定义了可用于单个应用的视图,模板,静态文件等等的集合。 #构建蓝图:importBlueprint()类并用参数name和import_name初始化。 # 通常用__name__,一个表示当前模块的特殊的Python变量, # 作为import_name的取值。 blue=Blueprint('first',__name__) @blue.route('/')#路由:这个相当于django的urls def hello_world(): print('快乐不分男女') return 'Hello World!' @blue.route('/get/<string:id>/') def get(id): print(id) print(type(id)) return '哈哈' #这个需要先获取一个uid @blue.route('/getuid/<uuid:uid>/') def getuid(uid): print(uid) print(type(uid)) return '呵呵呵' #生成uid @blue.route('/makeuid/') def makeuid(): uid=uuid.uuid4() print(uid) print(type(uid)) return 'uid生成成功' @blue.route('/getany/<any(a,b,c):p>/') def getany(p): return '你又黑了%s'%p @blue.route('/getmethod/',methods=['POST','GET']) def getmethod(): return '必须是POST请求' @blue.route('/getreq/') def getreq(): # print(request.method)#请求方式:默认是GET # print(request.remote_addr) # print(request.url)#http://127.0.0.1:5000/getreq/ # print(request.base_url)#http://127.0.0.1:5000/getreq/ # print(request.cookies)#打印cookie存储信息 print(request.form)#空字典 print(request.args)#空字典 print(request.files)#空字典 return "请求成功" @blue.route('/getfile/') def getFile(): # 这一步是将模板加载过来,并且转换成字符串的形式 temp = render_template("haha.html") resp = make_response(temp,502) print(temp) return resp

 

#创建一个html文件,我创建的是haha.html
<h2>今天雾霾很大,注意戴口罩</h2> <h2>远离危险区,不要随意闯红灯</h2>

 python manage.py runserver 运行程序,默认端口是5000

点击http://127.0.0.1:5000/进入就是hello world也就是路由把这个默认成首页;

 

 通过路由来到达自己想去的页面

用圈圈住的斜杠最好加上,例如:在浏览器输入框内输入127.0.0.1:5000/get/3和127.0.0.1:5000/get/3/都可以转到目的页,如果不加后面的斜杠,只能通过127.0.0.1:5000/get/3到指定页

 

剩下的就不一一实验截图了

 

 

推荐阅读