'''
http://127.0.0.1:5000/
后面的这个/叫做根路由
'''
'''
安装flask框架的时候 随着一起的还有jinja2 和 werkzeug
MTV框架---网站项目的框架
M---model 数据模型---数据库中的数据
T---Template 模型 模板文件一般就是html文件
V---View + route 视图+路由
路由就是在网址中设置的资源定位根路由是/
一般的操作是根据路由定位到对应的视图函数View
执行函数操作对应的业务逻辑
Jinja2
flask中的模板引擎 提供了模板的语法
Werkzeug
网站数据进行请求时
客户端 ---浏览器
|
web服务请求数据
|
wsgi容器(应用服务器)
|
web应用程序
web服务器:
接受客户端的请求 跟客户端之间是通过http协议惊喜数据交流的
又是也称作 http服务器
web服务器只负责处理http协议的 一般就是来处理静态页面的
像动态数据---数据库中的数据 通过wsgi接口交给应用服务器进行处理
web服务器常用的 nginx apache等
wsgi容器:
常见的wagi容器有gunicorn,uWSGI等
作用:根据web服务器传递来的参数构建一个让wsgi应用能够成功执行的环境
并且把wsgi用于上处理好的数据返回给web服务器
flask框架中 werkzeug就是wsgi的容器
一般框架中 wsgi容器中 都集成了web服务器
'''
'''
url --- 资源定位符
/ -- 根
'''
1 from flask import Flask
2 from settings import DevelopmentConfig
3 from settings import ProductionConfig
4 #创建flask类的对象 需要设置一个参数import_name :设置的时flask对象app所在的模块名
5 app = Flask(__name__)
6 #查看应用的配置信息
7 print(app.config)
8 # app.config['ENV'] = 'development'#设置当前环境为开发环境
9 # app.config['DEBUG'] = True
10 #从配置文件中加载配置信息
11 app.config.from_object(DevelopmentConfig)
12
13 #设置一个根路由
14 @app.route('/')
15 def index():
16 return 'Hello Flask!'
17
18 #路由
19 @app.route('/user')
20 def user_info():
21 user_dict = {
22 'name':'橙子',
23 'age':20,
24 'sex':'女'
25 }
26 return user_dict
27
28 #路由变量
29 #URL定位资源的路径中 有一个数据是变化的 每次变化对应着一组数据
30 @app.route('/phone/<brand>')
31 def phone(brand):#在路由中有变量的话 一定要在路由中绑定对应的变量
32 '''
33 在url中传递不同的变量值 需要再对应的视图函数中根据这个变量的数据 进行查询操作
34
35 '''
36 return '手机品牌' + brand
37
38 # 分页的情况 变量设置为页码
39 @app.route('/page/<int:page>')
40 def page_data(page):
41 return f'正在请求第{page}页数据'
42
43 #路由中变量必须加中尖括号 不加尖括号就是一个确定字段
44
45 #路由中 路径后加不加/ 路由重定向
46 '''
47 加/ ==文件夹
48 不加 ==文件
49 加上/ 这个url路径 就相当于 访问文件夹 cd 切换文件夹的时候 后面加不加路径分隔符 都可以
50 访问资源的时候 后面加不加/ 都能请求定位嗷资源
51 '''
52 @app.route('/hello/')
53 def hello():
54 return 'hello'
55
56 '''
57 类似于打开文件 直接写文件名 就能打开文件 但是在文件后面加路由路径分隔符 就找不到这个东西
58 请求资源的时候 不加可以请求资源 加上 就没有对应的资源啦
59 '''
60 @app.route('/nice')
61 def nice():
62 return 'nice'
63
64 if __name__ == '__main__':
65 #启动flask对象 将其部署到服务器上
66 #可以指定访问服务器的地址 默认是127.0.0.1 只能当前计算机可以访问服务器把他设置成功
67 #可以指定访问服务器的端口号 默认是5000
68 #debug 默认是false 在开发环境中建议开启跳水模式 应为开发阶段会经常修改代码 如果是非调试
69 #项目才可以访问新内容
70 app.run()
