基于Flask框架搭建视频网站的学习日志(二)

基于Flask框架搭建视频网站的学习日志(二)2020/02/02

一、初始化

所有的Flask程序都必须创建一个程序实例,程序实例是Flask类的对象

from flask import Flask
app = Flask(__name__)

Flask 类的构造函数Flask()只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,python的__name__变量就是所需的值。(Flask这个参数决定程序的根目录,以便稍后能够找到相对与程序根目录的资源文件位置)——《Flask Web开发》

二、路由和视图函数

1.路由:

个人对路由的理解:程序实例需要知道每个URL请求运行那些代码,用route()修饰器把函数绑定到URL上

2.视图函数:

返回的响应可以是字符串或者复杂的表单

三、动态路由

变量规则 Flask中文文档(https://dormousehole.readthedocs.io/en/latest/quickstart.html)

通过把 URL 的一部分标记为<variable_name> 就可以在 URL 中添加变量。标记的 部分会作为关键字参数传递给函数。通过使用 <converter:variable_name>,可以 选择性的加上一个转换器,为变量指定规则。请看下面的例子:

@app.route('/user/<username>')
def show_user_profile(username):
    # show the user profile for that user
    return 'User %s' % escape(username)

@app.route('/post/<int:post_id>')
def show_post(post_id):
    # show the post with the given id, the id is an integer
    return 'Post %d' % post_id

@app.route('/path/<path:subpath>')
def show_subpath(subpath):
    # show the subpath after /path/
    return 'Subpath %s' % escape(subpath)

转换器类型:

string (缺省值) 接受任何不包含斜杠的文本
int 接受正整数
float 接受正浮点数
path 类似 string ,但可以包含斜杠(与string区分)
uuid 接受 UUID 字符串

! 注意:<converter:variable_name>中间不能有空格,格式要一致

四、启动服务器

if __name__ == '__main__':
    app.run(debug=True)

1.服务器启动以后会进入轮询,等待并处理请求(轮询是用来解决服务器压力过大的问题的。如果保持多个长连接,服务器压力会过大,因此。专门建立一个轮询请求的接口,里面只保留一个任务id,只需要发送任务id,就可以获取当前任务的情况。如果返回了结果,轮询结束,没有返回则等待一会儿,继续发送请求。 )

2.把debug参数设置为True,启用调试模式

3.在浏览器上输入网址,如果是生成的初始网址,并且URL带了变量,这时先会返回错误,因为生成的初始网址里面没有变量,例如应该加上/user/44654。其中的<>也要去掉

posted @ 2020-02-03 23:40  Breezerf  阅读(...)  评论(...编辑  收藏