[Follow Study] Day1: Flask开发IDE及入门例子,Ubuntu 14.04配置Nginx+uWSGI托管virtualenv下Flask应用的一些注意事项

seoxx 篮球 2024-12-24 2 0

[Follow Study] Day1: Flask开发IDE及入门例子

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

Flask IDE配置相关

1. virtualenv的使用

virtualenv简单理解就是一个虚拟环境,使用它是为了避免不同开发环境因Python版本而带来的干扰,简而言之,就是避免互相干扰。

virtualenv安装命令

pip install virtualenv

virtualenv搭建环境命令

virtualenv venv

需要注意的是,最好将它安装在开发项目目录下,比如我们的开发目录为followstudy,进入该目录后在命令行执行。这里的venv为虚拟环境的名称,可以根据需要自行命名。安装成功后,目录结构如下:

安装成功后,需要在项目中指定开发环境,可以在PyCharm的File -> Default Settings中查找。

virtualenv环境启用

source venv/bin/activate

注意,命令不是固定的,venv是可变的,具体取决于虚拟环境的命名。成功启用后,命令行前会显示(venv)。以后的开发过程中,须先激活虚拟环境,然后再进行开发。当不需要虚拟环境时,可以直接输入:deactivate来退出当前虚拟环境。

flask安装命令

pip install flask

在当前虚拟环境下,执行上述命令可以快速安装Flask及其依赖包。

flask render_template

上面的index函数返回的是一些简单的字符串,显然不够美观。这时候可以用Flask的模板引擎——Jinja2。默认情况下,Flask模板文件存放在app下的templates目录,建议按照习惯命名。在app目录下建立一个templates目录,并在其中创建一个index.文件。

        
            @app.route('/')
            def index():
                return render_template('index.', title="hello world")

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

在文件中,需要展示"hello world"的地方用 {{ title }} 替换。简单的记忆是,sample.py中的"hello world"赋值给变量title,然后在中使用 {{ title }} 调用数据。

flask route路由

前面使用了一个app.route('/') ,为更好理解route,需要搭建更多的路由,进一步学习。

新添加两个路由,一个是about,另一个是service/。细心的话可以注意到,一个结尾有"/",另一个没有。当访问 127.0.0.1:5000/about时,能够显示about页面内容。

而访问 127.0.0.1:5000/service 时,会被自动301重定向到 127.0.0.1:5000/service/,然后返回service页面内容。这是Flask路由的特性,建议目录加"/",页面则不必。

flask url_for

url_for是Flask中的路径定位工具,通常用作视图函数的绑定和定位静态资源。

[Follow Study] Day1: Flask开发IDE及入门例子,Ubuntu 14.04配置Nginx+uWSGI托管virtualenv下Flask应用的一些注意事项

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

[Follow Study] Day1: Flask开发IDE及入门例子,Ubuntu 14.04配置Nginx+uWSGI托管virtualenv下Flask应用的一些注意事项

Python Web实战:Flask + Vue 开发一个漂亮的词云网站

本文分享一个结合Python Flask框架和Vue的词云生成网站的实战案例,旨在提供一个简单有趣的Web应用练习,适合初学者学习与实践。

项目采用前端Vue和后端Flask框架构建,代码已开源在GitHub,地址为:github.com/77Y/flask-vue-word-cloud

项目动机来源于团队年终述职时使用词云展示工作成果,以及团队成员讨论拓宽技术视野以促进个人成长。在接触过Python和R生成词云后,作为移动端开发者,作者想在本地搭建一个词云生成服务,于是开始了这个小项目。

项目目录结构包括backend(Flask 实现的服务器端)和frontend(Vue 实现的客户端),运行效果展示了一个简洁的词云生成应用。

开发环境需求包括安装Node JS环境,详细信息可参考Node JS官网。

前端部分开发流程包括:
  1. 安装vue-cli:用于快速开发基于Vue.js的应用的完整系统。
  2. 创建项目:通过命令行创建目录并初始化项目,设置基本信息。
  3. 安装Element UI:一个基于Vue的桌面端组件库。
  4. 安装axios:基于Promise的HTTP客户端,用于前后端分离应用。
  5. 编写页面:修改App.vue,创建WordCloud.vue作为主要页面,实现点击事件并发送请求。
后端部分开发流程包括:
  1. 安装Python3:使用Homebrew安装Python3。
  2. 创建虚拟环境:为Python项目提供独立运行环境。
  3. 安装Flask:Python的Web框架。
  4. 安装词云生成库wordcloud。
  5. 编写代码:参考The Flask Mega-Tutorial教程,实现应用功能。

本文通过一步步的实践指导,展示如何使用Flask和Vue构建一个词云生成网站,适合Web开发初学者学习。项目已开源,欢迎关注和实践。

如何最简单、通俗地理解Flask?

Flask是一个轻量级的Python web框架,适合于快速开发小型到中型的web应用。安装非常简单,只需在项目目录中运行:

Flask可以搭建一个web,将模型运行结果显示出来。比如使用OCR技术识别图片中的文字,使用Flask开发的web应用可展示识别结果。

HTML文件结构可以如下:

运行结果:

在此页面中,将看到识别出的图片文字内容。Flask提供便捷的API接口,让你轻松地将模型的输出展示给用户。

使用Flask时,首先需要定义一个路由,例如:

        
            from flask import Flask
            app = Flask(__name__)

            @app.route('/results')
            def show_results():
                # 这里调用模型获取识别结果
                result = "识别结果在这里"
                return result
        
    

运行上述代码后,通过访问相应的URL,就可以看到OCR识别结果。这就是通过Flask简单、通俗地理解web开发的方式。

Flask使得复杂模型输出以用户友好的方式展示,简化了数据展示与交互过程。其灵活性和易用性,使其成为构建web应用的理想选择。

Ubuntu 14.04配置Nginx+uWSGI托管virtualenv下Flask应用的一些注意事项

在Python开发中,配置Nginx+uWSGI托管virtualenv下的Flask应用时,可能会遇到一些常见问题。首要的是确保虚拟环境的正确使用。错误的启动命令,如使用uWSGI的命令启动后,可能会引发502 bad gateway错误。排查后发现,问题出在uWSGI安装在项目的virtualenv目录中但ini配置文件未配置虚拟环境目录。官方教程中的ini配置通常忽略这一点。

[Follow Study] Day1: Flask开发IDE及入门例子,Ubuntu 14.04配置Nginx+uWSGI托管virtualenv下Flask应用的一些注意事项

解决方法是,在配置文件中加入虚拟环境目录的路径。推荐在配置文件中包含 plugin = python,以确保正确加载Python模块。同时,确保已安装所需插件。具体安装步骤可参考官方文档,这里不再赘述。

        
            [uwsgi]
            plugins = python
            vhost = true
            chdir = /home/k/Documents/demovenv
            e = /home/k/Documents/demo/venv
            app = main
            callable = app
            socket = /home/k/Documents/demo/%n.sock
            chmod-socket = 666
            logto = /home/k/Documents/demo/%n.log
            processes = 4
            threads = 2
            accesslog = /home/k/Documents/demo/access.log
            errorlog = /home/k/Documents/demo/error.log
        
    

项目目录结构如下:

        
            demo/
            ├── venv/
            │   ├── main.py
            │   └── uwsgi.ini
            ├── uwsgi.sock
            ├── uwsgi.log
            ├── access.log
            └── error.log
        
    

在Ubuntu 14.04上配置Nginx+uWSGI托管virtualenv下的Flask应用时,需注意虚拟环境的正确配置。遵循上述指南,可以有效避免常见问题,使应用运行更加顺畅。对于对PHP教程感兴趣的朋友,本指南提供了一种解决方案,希望能有所帮助。