Pynecone —— 纯 Python 全栈 Web 框架

Pynecone 是一个全栈 Python 框架,可以使用纯 Python 构建高性能、可自定义的 Web 应用程序。

Pynecone 应用程序示例

下面是一个围绕 DALL·E 创建 UI 的示例,这个示例调用了 OpenAI 的 DALL·E API,但您可以在本地将其替换为任何 ML 模型。

下面是创建它的完整代码,这一切都在一个 Python 文件中完成!

import pynecone as pc
import openai

openai.api_key = "YOUR_API_KEY"

class State(pc.State):
    """The app state."""
    prompt = ""
    image_url = ""
    image_processing = False
    image_made = False

    def process_image(self):
        """Set the image processing flag to true and indicate image is not made yet."""
        self.image_processing = True
        self.image_made = False        

    def get_image(self):
        """Get the image from the prompt."""
        response = openai.Image.create(prompt=self.prompt, n=1, size="1024x1024")
        self.image_url = response["data"][0]["url"]
        self.image_processing = False
        self.image_made = True

def index():
    return pc.center(
        pc.vstack(
            pc.heading("DALL·E", font_size="1.5em"),
            pc.input(placeholder="Enter a prompt..", on_blur=State.set_prompt),
            pc.button(
                "Generate Image",
                on_click=[State.process_image, State.get_image],
                width="100%",
            ),
            pc.divider(),
            pc.cond(
                State.image_processing,
                pc.circular_progress(is_indeterminate=True),
                pc.cond(
                     State.image_made,
                     pc.image(
                         src=State.image_url,
                         height="25em",
                         width="25em",
                    )
                )
            ),
            bg="white",
            padding="2em",
            shadow="lg",
            border_radius="lg",
        ),
        width="100%",
        height="100vh",
        bg="radial-gradient(circle at 22% 11%,rgba(62, 180, 137,.20),hsla(0,0%,100%,0) 19%)",
    )

# Add state and page to the app.
app = pc.App(state=State)
app.add_page(index, title="Pynecone:DALL·E")
app.compile()

Pynecone 中的 UI

从用户界面开始。

def index():
    return pc.center(
        ...
    )

index函数定义应用程序的前端。可使用不同的组件,例如centervstackinputbutton来构建前端。组件可以相互嵌套以创建复杂的布局。您可以使用关键字参数来使用 CSS 的全部功能来设置它们的样式。

Pynecone 附带60 多个内置组件

状态

class State(pc.State):
    """The app state."""
    prompt = ""
    image_url = ""
    image_processing = False
    image_made = False

状态定义了应用程序中可以更改的所有变量(称为 vars)以及更改它们的函数。这里的状态由prompt和组成image_url。还有布尔值image_processingimage_made指示何时显示循环进度和图像。

事件处理器

    def process_image(self):
        """Set the image processing flag to true and indicate image is not made yet."""
        self.image_processing = True
        self.image_made = False        

    def get_image(self):
        """Get the image from the prompt."""
        response = openai.Image.create(prompt=self.prompt, n=1, size="1024x1024")
        self.image_url = response["data"][0]["url"]
        self.image_processing = False
        self.image_made = True

在状态中定义了称为事件处理程序的函数来更改状态变量。事件处理程序是在 Pynecone 中修改状态的方式。可以调用它们以响应用户操作,例如单击按钮或在文本框中键入,这些动作称为事件。

我们的DALL·E。应用程序有两个事件处理程序,process_image用于指示正​​在生成图像和get_image调用 OpenAI API。

路由

最后定义应用程序并告诉它使用什么状态。

app = pc.App(state=State)

添加一条从应用程序根目录到索引组件的路由,还添加了一个标题,该标题将显示在页面预览/浏览器选项卡中。

app.add_page(index, title="Pynecone:DALL-E")
app.compile()

安装

Pynecone 需要以下内容才能开始:

$ pip install pynecone

创建您的第一个 Pynecone 应用程序

安装 Pynecone 也会安装pc命令行工具,可通过创建一个新项目来测试安装是否成功。

将 my_app_name 替换为自己的项目名称:

$ mkdir my_app_name $ cd my_app_name $ pc init 

第一次运行此命令时,会自动下载并安装bun 

此命令会在您的新目录中初始化模板应用程序,可以在开发模式下运行此应用程序:

$ pc run 

应用程序将在 http://localhost:3000 上运行。现在可以修改my_app_name/my_app_name.py

Pynecone 具有快速刷新功能,可以在保存代码时立即看到更改。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/p/pynecone

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。