python-web框架flask:快速搭建

本文介绍了Python Web框架Flask的使用,包括全局应用对象创建、启动与端口监听、路由配置(静态与动态)、模板渲染、请求数据处理、响应与会话管理。通过实例详细解析了Flask的基础功能,适合初学者入门。
摘要由CSDN通过智能技术生成

参考:快速上手

python-web框架flask:搭建一个完整程序 配合服用,效果更佳。

1、flask全局应用对象

1、创建一个flask全局应用对象。

	
	app = Flask(__name__)
	

       创建一个全局对象非常简单,name 指定这个全局对象的 应用模块或者包的名称。
       我们可以点开Flask这个方法,里面可以配置一些参数,我们重点讲几个参数的意思。也是正常我们会用到的:

	 def __init__(
	        self,
	        import_name,
	        static_url_path=None,
	        static_folder="static",
	        static_host=None,
	        host_matching=False,
	        subdomain_matching=False,
	        template_folder="templates",
	        instance_path=None,
	        instance_relative_config=False,
	        root_path=None,
	    ):

       看一下static_folder,这个参数,默认是static,这个参数是我们加载静态资源的相对路径, 有时候我们的目录机构可能不叫static,这个时候如果还是使用默认配置就找不到我们的静态资源了,不要慌,我们只需要修改这个路径既可。

       然后还有一个同样配置的参数我们需要看一下就是 template_folder,这个是配置我们的html模板的相对地址,和上面的static的配置类似。

注意:这边的相对路径是相对于当前的启动的py文件,比如说当前的目录结构是这样的:
在这里插入图片描述
       那么我们的static_folder就应该配置为 . ./static,因为这个路径是相对于启动函数

2、启动和端口监听

       我们的程序既然有了全局应用对象,那么怎么去启动呢,有两种方式,如果在我们的ide:pyCharm中启动,我们可以用run方法来实现:

	 app.run(
	        host='127.0.0.1',
	        port=8082,
	        debug=True
	    )

非常简单,我们就可以启动一个应用,当然这只是最简单的,还有很多拓展工作没做

在shell机器下面我们的启动比较麻烦,命令如下:

	$env:FLASK_APP = "main.py"	

       因为没有真实尝试过,所以具体还是以官方文档为主:It`s 官方文档-部署


2、路由

1、静态路由

       正常情况下,像我们的欢迎页之类的都是静态路由,不携带动态参数,我们来看一下他的书写方式(注:app是我们的flask全局应用对象),这边采用route方法:

	@app.route('/')
	def index():
    return 'Index Page'

2、带参数路由

       如果我们的一个路径需要携带参数怎么办呢,不要慌,flask拥有对应的参数匹配规则

       这边的参数传递有两种方式,一种是原始的参数传递<variable_name>,一种是参数转换传递<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 ,但可以包含斜杠
uuid 接受 UUID 字符串

3、路由重定向

       其实我感觉这个没啥可说的,但是可能在开发的过程中会误写一些东西,导致我们的程序运行出错&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

了-凡

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值