用python画画简单代码_震撼!用Python开发网站如此简单

Flask是一个基于Python语言的微型Web框架。之所以被称为微型,是因为其核心非常小,但是该Web框架简约而不简单,具有很强的扩展能力。本文介绍如何编写和运行第一个Flask Web应用程序。

当然,阅读本文之前,需要读者有一定的Python基础。有时间的同学可以填写以下的调查,让我们了解阅读本文的读者Python掌握情况。

efa4d88b7e9b1a7999a729cf1e534a58.png

一 安装Flask框架

要使用Flask框架,必须先安装Flask。安装主要方式有两种。

1.在PyCharm中安装Flask

(1)执行File|Settings命令,如图2.2所示。

2278414f118886f641108baa848c3939.png

图2.2 选择File|Settings命令

(2)在上一步操作基础上,继续执行Project:untitled(untitled为工程名,要根据实际的工程名来选择)|Project Interpreter,如图2.3所示。

10df7771865a72a322c52bb953058899.png

图2.3 找到Project Interpreter

(3)单击图2.3中的“+”号按钮后,弹出如图2.4所示对话框,在输入框中输入Flask,然后回车。

d7b82bd9d784a4a95daaae48420f7f8b.png

图2.4 执行Flask的安装

(4)安装成功以后,如图2.5所示。

7bb5d6b82417bdf88ac1d7492f030966.png

图2.5 成功安装Flask框架

2.用pip方式安装Flask

笔者的虚拟环境地址为J:flask-venvvenv,在cmd下按以下步骤操作:


(1) cd j:(2) cd J:flask-venvvenvScripts(3) activate

上面3个命令的每个命令输入完后都需要回车。执行完这3个命令后,表示成功激活当前虚拟环境。在(venv)J:flask-venvvenvScripts>下输入pip install Flask,即:


(venv)J:flask-venvvenvScripts> pip install Flask

然后回车,即可安装Flask了。

46743e2c4a7a0d286cab64e5d0876f7d.png

注意: 后续章节用到的很多框架都可以通过这两种方式来完成安装,读者可以根据自己的喜好来选择安装方式。

2.2.2 在Flask中输出Hello World

所有的Flask程序都必须创建一个程序实例。Web服务器使用一种名为Web服务器网关接口(Web Server Gateway Interface,WSGI)的协议,把接收自客户端的所有请求都转给这个对象进行处理。程序实例是Flask类的对象,经常使用下述代码创建:


from flask import Flaskapp = Flask(__name__)

from flask import Flask这行代码表示从Flask框架中引入Flask对象。app=Flask(__name__)这行代码表示传入__name__这个变量值来初始化Flask对象,Flask用这个参数确定程序的根目录,__name__代表的是这个模块本身的名称。

使用route()装饰器注明通过什么样的URL可以访问函数,同时在函数中返回要显示在浏览器中的信息。代码如下:


@app.route('/')def index():return 'Hello World!'

@app.route('/')这行代码指定了URL与Python函数的映射关系,我们把处理URL和函数之间关系的程序定义为路由,把被装饰的函数index()注册为路由,此处注册给index()函数的路由为根目录。

这里的index()函数叫做视图函数,视图函数必须要有返回值,返回价值为字符串或简单的HTML页面等内容。

系统初始化了,路由和视图函数有了,Flask程序如何运行呢?Flask程序的运行需要服务器环境,我们可以通过run方法来启动Flask自身集成的服务器。代码如下:


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

如果__name__=='__main__',就要启用Web服务来运行上面的程序,服务器一旦开启,就会进入轮询状态,等待并处理请求。在app.run()中可以传入一些参数,比如debug,app.run(debug=Ture),表示设置当前项目为debug模式,也就是调试模式。如果设置了调试模式,遇到程序有错误,会在控制台输出具体的错误信息,否则只会笼统地报告“应用服务器错误”的信息。另一方面,如果设置为调试模式,期间又修改了程序代码,系统会自动重新将修改的代码提交给Web服务器,你只需要确保浏览器没有缓存,便可以得到最新修改的代码结果。

app.run()还可以传入端口等信息,比如app.run(host='0.0.0.0',port=8080),host='0.0.0.0'参数设置启用本机的IP地址可以访问,端口地址指定为8080,如果不指定,则为5000。

接下来,在PyCharm中实现上述项目。

在PyCharm中新建一个名称为2-1的工程(新建工程注意使用已经存在的“虚拟环境”),如图2.6所示。

6af7fc30dc39b33e74b336c410d22c37.png

图2.6 选择使用已有“虚拟环境”

app.py的内容见例2-1。

例2-1 Flask实例:app.py


01 # 从Flask框架中导入Flask类02 from flask import Flask03 # 传入__name__初始化一个Flask实例04 app = Flask(__name__)05 #这个路由将根URL映射到了hello_world函数上06 @app.route('/')07 def hello_world(): #定义视图函数08 return 'Hello World!' #返回响应对象09 if __name__ == '__main__':10 #指定默认主机为是127.0.0.1,port为888811 app.run(debug=True,host='0.0.0.0', port=8888)

运行程序,结果如图2.7所示。

1056945e7619e592de3b4f25d2fc966a.png

图2.7 第一个程序Hello World

如果启用的端口不是5000端口,这里port=8888在笔者的PyCharm 2018.2.1版本中是不会生效的,访问地址仍然为 http://127.0.0.1:5000/ ,为使新端口地址生效,还需要做进一步设置。

(1)执行Run|Edit Configurations命令,如图2.8所示。

4db1568b331b88807ec4ffe2fc1b4433.png

图2.8 执行Run|Edit

c28a61d646b7b482499d647e7c4a32f8.png

(2)弹出如图2.9所示对话框。

88d531388d0ecfe781f1ae48efce8544.png

图2.9 运行端口设置

(3)在Additional options输入框中输入“--host=192.168.31.118--port=8888”(192.168.31.118为笔者计算机的IPv4地址),当然这里你也可以输入“--host=127.0.0.1--port=8888”。接下来,在浏览器地址栏可以输入 http://192.168.31.118:8888/ 访问网页,192.168.31.118一个网段内的局域网计算机也可以通过 http://192.168.31.118:8888/ 访问到此网页的内容。

46743e2c4a7a0d286cab64e5d0876f7d.png

注: PyCharm在2018.2.1之前的版本是不需要上述两个步骤设置的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中char函数返回值,用于返回char的C函数的PInvoke

我正在尝试编写一些从非托管DLL调用方法的C#代码。dll中的函数原型为:extern "C" __declspec(dllexport) char *foo(void);在C#中,我首先使用:[DllImport(_dllLocation)]public static extern string foo();…

电脑有摄像头吗_网络答辩来了,我摄像头呢???

我们学校已经确定要网络答辩了。今明两天是预演答辩,就是指导老师带着我们一起熟悉下钉钉的使用流程,模拟一下答辩的过程,以免因为自己的不熟练而影响答辩的成绩。我们老师的意思,正式网络答辩过程中,因为自己的不熟练…

grubbs检测c语言,Grubbs算法检测离群值

▲概述:一组测量数据中,如果个别数据偏离平均值很远,那么这个(这些)数据称作“可疑值”。如果用统计方法—例如格拉布斯(Grubbs)法判断,能将“可疑值”从此组测量数据中剔除而不参与平均值的计算,那么该“可疑值”就称…

将十个数进行从大到小的顺序进行排列_如何进行商品ABC分类管理

​ ABC管理法是根据事物的经济、技术等方面的主要特征,运用数理统计方法,进行统计、排列和分析,抓住主要矛盾,分清重点与一般,从而有区别地采取管理方式的一种定量管理方法。又称主次分析法 、ABC分析法、分类管理法、…

c语言around用法,KET基础语法:介词among和around的用法及例句

孩子们开始学习KET考试后,标志着他们开始系统地学习语法,对孩子们来说是不小的挑战。复杂的语法时态、不同类型的介词、短语等,都要求他们掌握正确的复习方法,才能避免学习语法后,而不知道如何运用的误区。而学会错题整…

vue函数如何调用其他函数?_python函数调用的四种方式

第一种:参数按顺序从第一个参数往后排#标准调用运行结果:第二种:#关键字调用注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:keyword_invoke(y1, 2),…

c语言酒店管理系统设计目的,C语言酒店管理系统设计.doc

《C程序设计》课程设计报告《C程序设计》课程设计报告班级 计科101班 学号 37 姓名 毛翔 得分一 目的加深对C/C语言知识的理解,扩大相关知识面,培养对这些知识的应用能力。通过一个实际问题的C/C语言源程序的编写和调试,提高综合运用C/C语言、…

android 基类封装用法,Android 基类封装之Fragment【原创】

现在的Android开发中,Activity和Fragment都是必不可少的,正如上篇博客所写,我们都会封装一个基类的Activity来做一些公共基础的操作。对于Fragment应用的越发广泛,在实际开发中,我们也应当封装一个基础的Fragment&…

fastjson 序列化 不包括转义字符_Java 反序列化工具 gadgetinspector 初窥 (上)

作者:Longofo知道创宇404实验室时间:2019年9月4日起因一开始是听Badcode师傅说的这个工具,在Black Hat 2018的一个议题提出来的。这是一个基于字节码静态分析的、利用已知技巧自动查找从source到sink的反序列化利用链工具。看了几遍作者在Bla…

linux gentoo安装,Gentoo安装教程——萌新向

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼手动配置内核激动人心的时刻到了,手动配置内核!先下载内核源代码,官方推荐使用gentoo-source,然后进入源代码目录,进行设置。详细的设置可以看金步国的文章。这里我只说说…

char类型怎么输入 c语言_C语言中的char

C语言中的char是用于声明单个字符的关键字。char关键字具有一些很奇怪的特点,但是想要了解这些奇怪的特点为什么会存在,我们就要先了解char关键字的原理。char关键字会在内存中找到一字节的空闲空间,并且在里面写入一个从0到255的整型&#x…

android webview网页显示不完整,【报Bug】webview页面内容显示不全

详细问题描述更新到2.6.0之后,进入webview页面,嵌入的html页面无法完全显示,部分内容被遮挡[内容]重现步骤[步骤]进入webview页面[结果]内容无法完全显示,部分内容被遮挡[期望]内容显示正常[如果语言难以表述清晰,拍一…

无法创建ole db取值函数。请查看列元数据是否有效_[C++ Primer plus 心得]3.处理数据...

本章内容包括:C变量的命名规则。C内置的整型----unsigned long、long、unsigned int、int、unsigned short、short、char、unsigned char、singed char 和boot。C11新增的整型:unsigned long long 和long long。表示各种整型的数字字面值(常量)使用const…

android+ios打印机,Android/iOS手机安装HP打印机的详细方法和操作步骤

如今人们越来越依赖手机,手机几乎成为了生活必需品,其功能越来越多,对其他电子设备的操控能力也越来越强,那么手机如何操控打印机呢?今天小编就跟大家分享一下手机是如何通过无线安装打印机的。备注:本文以Android系统…

微信 小程序 python 渲染_你用python写过那些好玩的微信小程序?

教你用Py来玩跳一跳小程序教程项目地址 2017 年 12 月 28 日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」。 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人…

android log.d 参数,Android log 机制 - logd 总览

Android 早期版本使用的是一个 log 驱动,后来逐渐使用 logd 进程替代(具体哪个版本我就没有去探究了,至少在 Android 8.0 里,log 驱动已经被移除)。原有 log 驱动负责的功能,都由 logd 完成。此外,logd 还可以读取 Lin…

python的requests模块功能_【python】requests模块初探(一)

一、写在前面 Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的&…

麒麟980可以升级鸿蒙吗,这五部麒麟980手机确定能升鸿蒙OS,其中有你吗?

原标题:这五部麒麟980手机确定能升鸿蒙OS,其中有你吗?就在今年九月的华为开发者大会上,余承东“一不小心”吐露出EMUI 11明年能升级鸿蒙OS 2.0的事实,这让许多华为用户兴奋不已,但首先你的手机必须要先能升…

python没有指针如何实现链表_Java、Python中没有指针,怎么实现链表、图等数据结构?...

Java、Python中没有指针,怎么实现链表、图等数据结构? (2016-10-06 11:08:19) 分类: C 其实Java, python完全可以看成在语言层用语法糖隐藏了指针。JAVA中到处充满指针,只不过把C中的指针封装成了对象的引用了,引用就相…

android语言列表+波斯,Android 多语言入门及实战

右键res,选择 New Resource Directory ,选择 locale ,选择自己想要适配的语言类型设置应用内多语言Android 7.0以下/*** 设置多语言*/public void setConfiguration(LocaleList locales, Context context) {Configuration configuration context.getResources().ge…