人生苦短,我用Python(四)—通过Flask结合Bootstrap框架快速搭建Web应用-1

写在前面:

Flask是一个给予Python开发,依赖jinja2模板和Werkzeug WSGI服务的一个微型框架。Werkzeug用来处理Socket服务,其在Flask中被用于接受和处理http请求;Jinja2被用来对模板进行处理,将模板和数据进行渲染,返回给用户的浏览器。

Bootstrap是由Twitter推出的一个用于前端开发的开源工具包,给予HTML、CSS、JavaScriot,提供简洁、直观、强悍的前端开发框架,是目前最受环境的前端框架。

好吧,其实以上,作者也不是很懂,让我们直接开始吧。


开始动手:

可以通过Pycharm创建Flask项目,Pycharm会自动帮你安装Flask以及其他依赖的程序,并为你设计程序的目录架构

第一段Flask程序:

项目创建完成以后,我们会发现Pycharm以贴心的帮你写了好了一段python程序,下面对其中的一些部分,做简要的解释:

[email protected]('/')

当客户端将请求发送给web服务器时,web服务器将请求发送给Flask程序,这时Flask程序需要知道对应客户端URL请求,需要运行哪些代码、实现什么功能。这时,需要将URL与Python函数,形成一个映射关系。

使用flask提供的app.route()修饰器,可以实现以上功能。

2.def hello_world():

这段不用多说,这是一段python函数,这段函数的功能是返回Hello World!这段字符串

于是在上文中的这段代码将url“/”与hello_world这段函数形成了对应关系

实现了,当客户端请求的url为“/”时,返回字符串“Hello World!”的功能,让我们将程序跑起来试一下

我们可以看到,程序会提示你当前程序运行在http://127.0.0.1:5000/

端口5000是Flask默认运行的端口。当然,Flask也支持对工作的端口进行修改,修改的方法在后文中会提到。

我们打开http://127.0.0.1:5000/开一下效果:

实现URL与Python函数的对应

我们可以看到,当请求的URL为"/"时,返回“Hello World!”字符串,实现了我们上述提到的功能。

那么,我们尝试新建一段URL与python函数的对应关系,试一下:

@app.route('/welcome')

def welcome():

    return 'Welcome to My World!'

将URL“/welcome”与welcome()函数,进行对应,返回“Welcome to My World!”字符串。运行程序试一下:

浏览器输入127.0.0.1:5000/welcome

我们可以看到,这里实现了我们想要的结果。

于是,我们可以利用URL与python函数的对应关系,当url请求为不同的请求时,后台调用不同的python函数,实现我们想要的功能

例如当用户请求URL“/1+1”对应执行,1+1

@app.route('/1+1')

def calcu():

     i=1+1

     return str(i)

结果如下图:

更改Flask提供服务的IP地址和端口

要指定Flask程序提供的服务工作的IP地址和端口,可以通过一下两个方式:

  • 在app.run()中指定,修改host和port参数,网上也有很多用这种方式进行修改的,但在pycharm中,修改不生效

  • 通过命令行执行:flask run --host 127.0.0.1 --port 1234

通过Flask返回模板

在这里,我们可以通过render_template函数,实现Flask返回html文件

render_template实际是通过的Jinja2渲染的模板

首先在template中创建html文件:

同样,在通过Pycharm创建HTML文件的时候,会预先将HTML文件的格式预置好

接着,修改部分代码,将URL“/welcome”与返回该模板进行对应:

from flask import Flask,render_template

@app.route('/welcome')

def welcome():

  return render_template('test.html')

我们看一下实际效果:


总结

我们可以通过这样的方式,将用户请求不同的URL时,返回不同的html模板

于是在这里我们将Flask与Bootstrap进行结合,Flask负责处理用户请求,和一些python程序的调用、Bootsrtap框架提供HTML文件,为用户提供页面展示。

下一篇,我们讲讲Bootstrap的一些使用方法

猜你喜欢

转载自blog.csdn.net/sinat_17736151/article/details/83653512