Flask中怎样指定应用程序模块

Flask中怎样指定应用程序模块,第1张

在 Flask 中,可以通过 app = Flask(__name__) 来创建一个应用程序实例。其中,__name__ 参数表示当前模块的名称,用于指定应用程序的模块。

如果应用程序的模块不是当前模块,则可以手动指定模块的名称。例如,如果应用程序的模块名为 myapp,则可以使用以下代码来创建应用程序实例:

app = Flask('myapp')

这样,应用程序的模块名就被指定为 myapp,而不是当前模块的名称。在实际开发中,可以根据具体情况来指定应用程序的模块名称,以便更好地组织和管理应用程序的代码。

我们先写一个最基本的flask应用:

demopy

from flask import Flask

app = Flask(name)

@approute('\')

def index():

return 'Hello World'

if __name__ == __main__:

apprun()

运行这个py文件,打开浏览器访问127001:5000就能看到显示Hello World的页面

如果让这个flask引用监听来自公网ip的请求,理论上你跑此程序的机器就相当于一个服务器了,然而这个服务器并不完美,所以我们需要nginx和gunicorn来增加它的功能,让它真刀真q上生产环境的时候能按要求运行。

flask自带的WSGI框架性能很差劲,只能适用于开发环境调试使用。我们用专业一点的gunicorn(还有很多其他优秀的框架)替代flask自带的WSGI框架。

配置完后,通过命令’/usr/local/bin/gunicorn -b127001:5000‘启动应用。打开浏览器访问127001:5000,同样能够得到返回页面

然而gunicorn也仅仅是一个python的WSGI框架而已,要让它真正处理来自互联网的各类访问功能还是有点欠缺,这时候就需要用到大名鼎鼎的nginx 服务器来替gunicorn遮风挡雨了。

Ubuntu下安装nginx可以用命令

sudo apt-get install nginx

安装后需要进行下配置:

cd /etc/nginx/sites-available

sudo vi test (test为配置名称,可以根据自己项目进行命名)

test文件的配置为:

server {

listen 80; # 监听80端口

location / {

proxy_pass >

当我们执行下面的hellopy时,使用的flask自带的服务器,完成了web服务的启动。在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部署flask程序。Gunicorn(绿色独角兽)是一个Python WSGI的>

flask是一个轻量级的web框架,下面整理讲一下如何使用

其实步骤很简单

1,初始化

app = Flask( name ),创建flask对象app,flask类的构造器必须指定的参数,如果是model的话,括号里就放model名,如果是单独应用可以使用 name

在初始化之后,用configupdate或者debug两种方式来定义是否debug的参数。线上程序为了安全需将这个参数设置为false,也就是不让debug

2,路由

通过装饰器的方式将我们的方法转换为路由,具体方法如下:

3,前后端的交互方式

方式一:前端发送,后端接收

前端通过ajax或者form的submit来生成后端所需要的内容(ajax看上一页)

后端通过requestform来获取前端post的参数

方式二:后端发送,前端接收

后端通过模版引擎render_template来进行交互

后端通过return render_template(’hellohtml’, name=name)来向hellohtml页面进行name的传递

Html页面放的地址必须在templates文件夹下。

前端获取方式:

{% if name %}

<h1>Hello {{ name }}!</h1>

flask 数据通信的流程  前后端刷新的方法

对于服务器开发工程师来说,

前端页面的刷新分:1、后端刷新2、前端刷新

后端刷新的实现是通过模板+数据的方式实现的

2、前端刷新是通过jQuery的Ajax +jQuery动态加载HTML、CSS的方式实现的

不管是后端刷新和前端刷新,它们都是需要通过>

1建立: F:\Python\flask文件夹路径

2安装virtualenv,在此路径下打开命令行窗口输入:

3新建一个目录,并在里边创建virtualenv环境,在DOS下

如图:

这时你创建的myproject文件夹里面就多了一个venv文件夹:

4激活虚拟环境

现在命令行前面多了个(venv)表示你在venv环境内

5在virtualenv里安装Flask

完成。如图:

6验证是否安装,你可以进入 Python 解释器,尝试导入 Flask:

如果没有报错,那么就安装成功了~如图:

1在myproject文件夹下打开命令行:

cd app #进入app文件夹

mkdir static

mkdir templates

我们的应用程序包是放置于 app 文件夹中。子文件夹 static 是我们存放静态文件像,JS文件以及样式文件。子文件夹 templates 显然是存放模板文件。

2为我们的 app 包(文件 app/ init py )创建一个简单的初始化脚本:

上面的脚本简单地创建应用对象,接着导入视图模块,该模块我们暂未编写。

视图是响应来自网页浏览器的请求的处理器。在 Flask 中,视图是编写成 Python 函数。每一个视图函数是映射到一个或多个请求的 URL。

3让我们编写第一个视图函数(文件 app/viewspy ):

其实这个视图是非常简单,它只是返回一个字符串,在客户端的网页浏览器上显示。两个 route 装饰器创建了从网址 / 以及 /index 到这个函数的映射。

4能够完整工作的 Web 应用程序的最后一步是创建一个脚本,启动我们的应用程序的开发 Web 服务器。让我们称这个脚本为 runpy,并把它置于根目录:

这个脚本简单地从我们的 app 包中导入 app 变量并且调用它的 run 方法来启动服务器。请记住 app 变量中含有我们在之前创建的 Flask 实例。

5要启动应用程序,您只需运行此脚本(runpy)

如图:

6在服务器初始化后,它将会监听 5000 端口等待着连接。现在打开你的网页浏览器输入如下 URL:

另外你也可以使用这个 URL:

你看清楚了路由映射是如何工作的吗?第一个 URL 映射到 /,而第二个 URL 映射到 /index。这两个路由都关联到我们的视图函数,因此它们的作用是一样的。如果你输入其它的网址,你将会获得一个错误,因为只有这两个 URL 映射到视图函数。

你可以通过 Ctrl-C 来终止服务器

入门就到这里,比较简单的。

下一章:

python轻量框架--Flask(模板详细版)

前几天在进行flask web开发的时候,虽然照猫画虎能够写一些简单的程序,不过感觉基础有点薄弱,经常写着写着就卡壳,很尴尬,所以打算先根据网上的一些开发教程认真学习学习,打好基础,毕竟磨刀不误砍柴!

Flask IDE配置相关

1、virtualenv的使用

virtualenv简单的理解就是一个虚拟环境,之所以用这个是为了避免不同的开发环境由于python版本而带来的影响,一句话,避免互相干扰。

virtualenv安装命令

pip install virtualenv

virtualenv搭建环境命令

virtualenv venv

这里需要注意,最好安装在开发项目目录下,比如我们的开发目录为followstudy,进入这个目录后,然后在命令行执行。其中venv为虚拟环境的名称,你也可以起名为其他的。安装成功之后的目录结构如下图:

安装成功之后,我们需要对项目指定开发环境(叫法可能有点问题),具体的话在pycharm的File->default setting中查找。

virtualenv环境启用

source venv/bin/activate

启用的时候,命令不是固定的,这个命令的venv是可变的,具体的话取决于我们的虚拟环境的命名,总之一句话,需要激活虚拟环境下的bin目录下的activate,启用成功之后,我们可以看到当前命令行前面有一个(venv),以后开发的过程需要先激活这个虚拟环境,然后再进行,另外当我们不需要虚拟环境的话,可以直接在当前命令下输入:deactivate,这样就退出了当前的虚拟环境。

flask安装命令

pip install flask

在当前虚拟环境下使用上面的命令,可以快速安装flask及flask所依赖的包。

flask render_template

上面的index函数是简单的一些字符串,显然并不是很漂亮的,这个时候我们可能需要用到flask的模板引擎——jinja2,jinja2功能比较强大,我们先根据例子简单来一个。默认的情况下flask模板文件存放在app下的templates,一个就不建议大家随意起名字了,约定俗成!首先我们在app文件下建立一个templates目录,然后在这个目录下建立一个indexhtml的文件。

@approute('/')

def index():

return render_template('indexhtml', title="hello world")

if name == ' main ':

apprun(debug=True)

在html文件中,我们把需要展示hello world的地方用 {{ title }}替换就可以,这里可以简单记忆,samplepy文件中的hello world赋值给变量title,然后在html文件中使用{{ title }}调用数据。

flask route路由

前面简单地使用了一个approute('/'),为了更好地理解route,我们需要搭建更多的路由,进一步学习。

新添加了两个路由,一个是about,另一个是service/ 区别之处,细心的话可以看到,一个结尾有“/”,另一个是结尾没有“/”的。

当访问127001:5000/about 的时候,能够出现about页面的内容。

但是当我们访问127001:5000/service的时候,url会自动301重定向到127001:5000/service/,然后返回service页面的内容。这是flask路由的一个特性,如果是目录的话 建议加上"/"。如果是page页面的话,就没必要加。

flask url_for

url_for是flask中用于路径定位的一个东西(不知道我理解的对不对。。。),通常来说url_for主要用作两个用途,一个是用来做视图函数的绑定,另一个是用来定位静态资源的。

flask url_for视图绑定

上面就是今天的学习笔记,明天继续 欢迎关注小虾的公众号哈

以上就是关于Flask中怎样指定应用程序模块全部的内容,包括:Flask中怎样指定应用程序模块、如何部署简单python + flask应用、阿里云服务器部署flask项目等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9682164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存