Java教程

开发第一个网站

本文主要是介绍开发第一个网站,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

一、开发简单脚本网站

二、代码分析

2.1 初始化

2.2 路由和视图函数

2.3 启动服务器


一、开发简单脚本网站

相比于另一个Python Web框架Django,Flask更“Python”化一些,因为我们可以在一个.py脚本文件中写完运行整个项目的所有代码。紧跟上一节内容,我们在blog项目下新建一个test.py文件,然后在该文件中填入主运行函数如下:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return "<h1>我的第一个网站</h1>"


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

上面的代码已经开发完成了一个最简单的网站。我们可以先不分析具体的代码,直接执行来看一下效果。我们在终端中输入命令来启动这个项目:

python test.py

正常情况下输出如下所示:

* Serving Flask app 'test' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 115-661-457
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

如果没有准确输出上面的内容,那么就要检查代码,其中注意__name__和__main__两个地方,这里前后都是两个下划线。

正常启动后我们就可以在浏览器中访问我们的这个网站,网址就在上述输出的最后一行http://127.0.0.1:5000/。效果如下图所示:

可以看到仅仅这么简单的7行代码,我们就构建了一个网站,这就是flask简洁的魅力。下面我们具体分析下代码。

二、代码分析

2.1 初始化

from flask import Flask
app = Flask(__name__)

上述代码首先我们从flask中引入Flask类,然后创建一个Flask类的实例app,并且以参数__name__传入(注意,这里的name前后各有两个下划线),这里的__name__是python的内置变量,当你直接执行一段脚本的时候,这段脚本的 __name__变量等于 '__main__', 当这段脚本被导入其他程序的时候,__name__ 变量等于脚本本身的名字。由于我们这里是一个单一的脚本,所以此时这个__name__变量实际执行时它的值为'__main__'。最后需要说明一点的是,我们创建的这个app是在脚本最外层定义的,即它是一个全局变量,在其他函数中可以直接使用这个全局变量。

2.2 路由和视图函数

@app.route('/')
def index():
    return "<h1>我的第一个网站</h1>"

首先理解两个概念:路由和视图函数。浏览器把请求发送给Flask服务程序,服务程序需要知道针对不同的网址需要运行什么代码,所以保存了一个网址到函数的映射关系,这个映射关系就是路由,一般也用url来表示,而这个路由对应的处理函数就是视图函数。打个比方,例如我们去代收点取快递(发起请求),我们需要将一个快递编号(路由)交给仓库管理员(服务程序),仓库管理员根据这个快递编号再去对应的货架上找货,然后将这个货物扫码一下表示已领取(视图函数),最后将物品交给我们(返回请求结果)。

      在Flask 程序中定义路由的最简便方式,就是使用程序实例提供的app.route 修饰器,把修饰的函数注册为路由。例如上面的@app.route('/'),这里'/'表示当前网址根目录。我们可以修改下,改成@app.route('/show'),保存后重新运行下程序,我们会发现访问出错,提示404找不到页面的错误:

如果我们在我们的访问网址后面加上/show,也就是访问这个网址:127.0.0.1:5000/show,我们可以发现又可以重新正常访问了:

到这里,我相信读者已经明白这个路由的含义了。

我们定义的视图函数名为index,函数中没有额外的操作,直接return返回 "<h1>我的第一个网站</h1>",这里使用了html硬编码的方式,也就是将网页页面内容直接以字符串形式写入并返回,返回的html内容是一个带有<h1>的中文字符串。需要说明的是,一般情况我们不会使用这种硬编码的方式将html的内容写入到python代码中,而是采用一种“模板渲染”的技术,后面教程我们会重点讲解。

2.3 启动服务器

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

启动flask服务器的方式比较简单,直接在主函数中通过app.run()函数即可启动。服务器启动后,会进入轮询,等待并处理结果。我们可以使用快捷键ctrl+c来停止该服务器。这里需要注意一下在启动函数的输入参数中,我们使用了debug=True,表示debug调试模式启动,这种模式在开发阶段比较方便,如果有错误页面会给出错误提示。如果开发调试都已完成,正式部署网站的时候需要将debug设置为False。

这篇关于开发第一个网站的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!