在 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项目等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)