ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

开发第一个网站

2021-05-15 09:57:37  阅读:130  来源: 互联网

标签:__ 第一个 网站 app Flask 开发 函数 路由 name


目录

一、开发简单脚本网站

二、代码分析

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。

标签:__,第一个,网站,app,Flask,开发,函数,路由,name
来源: https://blog.csdn.net/qianbin3200896/article/details/116477008

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有