Pynecone 纯 Python 全栈 Web 框架开源项目

我要开发同款
匿名用户2023年03月15日
50阅读
开发技术Python
所属分类Web应用开发、Web框架
授权协议Apache 2.0

作品详情

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

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

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

importpyneconeaspcimportopenaiopenai.api_key="YOUR_API_KEY"classState(pc.State):"""Theappstate."""prompt=""image_url=""image_processing=Falseimage_made=Falsedefprocess_image(self):"""Settheimageprocessingflagtotrueandindicateimageisnotmadeyet."""self.image_processing=Trueself.image_made=Falsedefget_image(self):"""Gettheimagefromtheprompt."""response=openai.Image.create(prompt=self.prompt,n=1,size="1024x1024")self.image_url=response["data"][0]["url"]self.image_processing=Falseself.image_made=Truedefindex():returnpc.center(pc.vstack(pc.heading("DALL·E",font_size="1.5em"),pc.input(placeholder="Enteraprompt..",on_blur=State.set_prompt),pc.button("GenerateImage",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(circleat22%11%,rgba(62,180,137,.20),hsla(0,0%,100%,0)19%)",)#Addstateandpagetotheapp.app=pc.App(state=State)app.add_page(index,title="Pynecone:DALL·E")app.compile()Pynecone中的UI从用户界面开始。

defindex():returnpc.center(...)

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

Pynecone附带60多个内置组件。

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

事件处理器defprocess_image(self):"""Settheimageprocessingflagtotrueandindicateimageisnotmadeyet."""self.image_processing=Trueself.image_made=Falsedefget_image(self):"""Gettheimagefromtheprompt."""response=openai.Image.create(prompt=self.prompt,n=1,size="1024x1024")self.image_url=response["data"][0]["url"]self.image_processing=Falseself.image_made=True

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

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

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

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

app.add_page(index,title="Pynecone:DALL-E")app.compile()安装Pynecone需要以下内容才能开始:

Python3.7+Node.js12.22.0+ (不必编写任何Javascript)$pipinstallpynecone创建您的第一个Pynecone应用程序安装Pynecone也会安装pc命令行工具,可通过创建一个新项目来测试安装是否成功。

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

$mkdirmy_app_name$cdmy_app_name$pcinit第一次运行此命令时,会自动下载并安装bun 。

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

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

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

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论