我们的 Github 是:https://github.com/pynecone-io/pynecone
Python 是世界上最流行的编程语言之一。 Webdev 是最流行的编程应用程序之一。 那么,为什么我们不能仅使用 Python 来制作全栈 Web 应用程序呢?
我们在人工智能/基础设施领域工作,发现即使是想要制作 Web 应用程序但不了解传统前端工具(如 Javascript 或 React)的熟练工程师也发现学习这些工具非常困难且耗时。 另一方面,在开发过程中节省时间的无代码和低代码解决方案缺乏传统 Web 开发的灵活性和健壮性。 这些工具非常适合原型制作,但随着您的应用变得越来越复杂,它们可能会受到限制。 我们希望构建一个易于上手,但又足够灵活和强大的框架,这样您就不会超越它。 我们的主要网站完全使用 Pynecone 构建并部署在我们的托管服务上。
在 Pynecone 中,前端编译为 React/NextJS 应用程序,因此从最终用户的角度来看,它看起来像任何其他网站。 我们有 60 多个内置组件,从表单到图形。 组件被定义为 Python 函数。 它们可以相互嵌套以实现灵活的布局,您可以使用关键字参数为它们设置完整的 CSS 样式。 我们还提供了一种轻松包装任何现有 React 组件的方法。 我们的目标是利用现有的 webdev 生态系统并使 Python 开发人员可以访问它。
应用程序状态只是一个类。 状态更新是类中的函数。 UI 是状态的反映。 当用户打开应用程序时,他们将获得一个唯一的令牌和一个新的状态实例。 我们在后端存储用户状态,并使用 Websockets 发送事件和状态更新。 当用户执行某个操作(例如单击按钮)时,会将一个事件与客户端令牌和处理该事件的函数一起发送到服务器。 在服务器端,我们检索用户的状态,执行更新状态的函数,然后将更新后的状态发送回前端进行渲染。 由于 Pynecone 是 100% Python,您可以轻松地将所有现有的 Python 库集成到您的应用程序中。 将来,我们希望利用 WebAssembly 将许多操作卸载到客户端。
构建应用程序后,下一个重大挑战就是部署它。 我们正在构建单行部署,因此您可以键入 pc deploy 并在几分钟内获取您的实时应用程序的 URL。 由于我们专注于托管单一类型的应用程序,因此我们的目标是提供零配置部署过程。 我们仍在努力发布托管服务,但您可以在我们的主页上注册其候补名单。 或者,您可以选择通过您首选的云提供商来托管您的应用程序。
到目前为止,用户使用 Pynecone 构建的内容包括从 CRM 到 ML 工具的内部应用程序、LLM 应用程序的 UI、登陆页面和个人网站。 如果您使用 Python,我们很乐意在评论中听到您的想法和反馈!