实践reflex:以Personalized Sales个人销售网站为例

2024-09-05 18:36

本文主要是介绍实践reflex:以Personalized Sales个人销售网站为例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 reflex 是一个使用纯Python构建全栈web应用的库,但是需要使用node,所以你懂的。

官网:Reflex · Web apps in Pure Python

手册:Introduction

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

reflex安装:实践reflex:一个使用纯Python构建全栈web应用的库-CSDN博客

 安装完成后,初始化:

skyw@ubjail1:~$ mkdir app1
sky@ubjail1:~$ cd app1
sky@ubjail1:~/app1$ reflex init

初始化时选择(2) sales (https://sales-new.reflex.run/) - An app to manage sales 
and customers

reflex init[06:11:11] Initializing the web directory.           console.py:104Get started with a template:
(0) blank (https://blank-template.reflex.run) - A minimal template
(1) dashboard (https://dashboard-new.reflex.run/) - A dashboard 
with tables and graphs
(2) sales (https://sales-new.reflex.run/) - An app to manage sales 
and customers
(3) ai_image_gen (https://ai-image-gen.reflex.run/) - An app to 
generate images using AI
(4) ci_template (https://cijob.reflex.run/) - A template for 
continuous integration
(5) api_admin_panel (https://api-admin-panel.reflex.run/) - An 
admin panel for an api.
(6) nba (https://nba-new.reflex.run/) - A data visualization app 
for NBA data.
(7) customer_data_app (https://customer-data-app.reflex.run/) - An 
app to manage customer data.
Which template would you like to use? (0): [06:11:24] Initializing the app directory.           console.py:104
Success: Initialized app1

 初始化完成后,启动服务:

reflex run─────────────────────── Starting Reflex App ───────────────────────00h00m00s 0/0: : 

然后可以使用http://192.168.0.13:3001打开网站(默认是3000和8000,如果有多个网站,会自动向后顺延)

解读代码:

代码在项目的子目录里,比如app2这个项目,代码在~/app2/app2/app2.py文件里:

import reflex as rx
from .views.navbar import navbar
from .views.email import email_gen_ui
from .views.table import main_table
from .backend.backend import Statedef index() -> rx.Component:return rx.vstack(navbar(),rx.flex(rx.box(main_table(), width=["100%", "100%", "100%", "60%"]),email_gen_ui(),spacing="6",width="100%",flex_direction=["column", "column", "column", "row"],),height="100vh",bg=rx.color("accent", 1),width="100%",spacing="6",padding_x=["1.5em", "1.5em", "3em"],padding_y=["1em", "1em", "2em"],)app = rx.App(theme=rx.theme(appearance="light", has_background=True, radius="large", accent_color="blue"),
)
app.add_page(index,on_load=State.load_entries,title="Sales App",description="Generate personalized sales emails.",
)

 定义前端

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

我们用不同的组件比如 centervstackinput, 和 button 来创建前端, 组件之间可以相互嵌入,来创建复杂的布局. 并且可以使用关键字参数来使用 CSS 的全部功能.

Reflex 拥有 60+ 个内置组件 来帮助您开始创建应用程序. 我们正在积极添加组件, 但是您也可以容易的 创建自己的组件.

State状态

Reflex 用 State 来渲染 UI. 上面代码中没有涉及State,下面是一个例子,创建一个State的类,包括prompt\image_url\processing\complete等信息

class State(rx.State):"""The app state."""prompt = ""image_url = ""processing = Falsecomplete = False

Event Handlers事件处理

def get_image(self):"""Get the image from the prompt."""if self.prompt == "":return rx.window_alert("Prompt Empty")self.processing, self.complete = True, Falseyieldresponse = openai_client.images.generate(prompt=self.prompt, n=1, size="1024x1024")self.image_url = response.data[0].urlself.processing, self.complete = False, True

Reflex中,事件处理器是我们可以修改状态的方式.它们可以作为对用户操作的响应而被调用,例如点击一个按钮或在文本框中输入.这些操作被称为事件。比如这个就是ai图片生成的一个事件处理函数。

Routing

最后,定义路由

app = rx.App()

添加从应用程序根目录到 index 组件的路由.我们还添加了一个在页面预览或浏览器标签中显示的标题.

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

这篇关于实践reflex:以Personalized Sales个人销售网站为例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139749

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再