Zephyrnet-logo

Is Pynecone een full-stack webframework voor Python?

Datum:

Introductie

Webframeworks/-bibliotheken in Python bieden een goede basis voor ontwikkelaars die website-applicaties willen ontwikkelen door verschillende functies van deze bibliotheken in Python te combineren. Vanwege zijn eenvoud hebben veel ontwikkelaars Python gebruikt, zelfs voor de ontwikkeling van website-applicaties voor de backend. Data Science en Machine Learning zijn sinds kort een belangrijk onderdeel van deze website-apps. Daarom zoeken ontwikkelaars constant naar bibliotheken waarmee ze deze in hun applicaties kunnen integreren.

Populaire bibliotheken in Python zijn Flask en Django. Django wordt gebruikt voor het bouwen van grootschalige apps. Aan de andere kant is Flask voor lichtere apps. Maar deze functioneren meestal als de backend, waar de ontwikkelaar de HTML, CSS en Javascript van de website afzonderlijk moet schrijven. Hier komen nieuwe bibliotheken zoals Streamlit en Pynecone om de hoek kijken, waardoor de ontwikkelaar rechtstreeks via Python een volwaardige full-stack-applicatie kan maken zonder HTML-, CSS- of Javascript-bestanden nodig te hebben. In dit artikel zullen we het hebben over zo'n bibliotheek genaamd Pynecone, die relatief nieuw is en dagelijks aan populariteit wint.

leerdoelen

  1. Meer informatie over de Pynecone-bibliotheek
  2. Begrijpen hoe het Pynecone-pakket moet worden geïnstalleerd
  3. Om te leren hoe u met Pynecone aan de slag kunt om full-stack applicaties te ontwikkelen
  4. Begrijp het projectformaat van een Pynecone-project en hoe u ze moet uitvoeren

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Inhoudsopgave

Wat is Pynecone? Waarom een ​​nieuw webframework?

Pinecone is een full-stack flexibele bibliotheek voor het bouwen en implementeren van zeer schaalbare website-applicaties. Dus waarom Pynecone? Wat maakt het anders dan andere Frameworks? Pinecone is gemaakt met de bedoeling om Python voor alles te gebruiken. Je hoeft geen nieuwe taal te leren, behalve Python om een ​​full-stack website te ontwikkelen. Pynecone, nieuw in het Web Framework, zit boordevol handige functies om gemakkelijk aan de slag te gaan met het bouwen van kleine data science-applicaties tot grote, zeer schaalbare websites met meerdere pagina's.

Pynecone is ook vrij flexibel, vergelijkbaar met oudere bibliotheken. Pynecone is een beginnersvriendelijk framework, maar kan krachtig genoeg blijken te zijn voor het ontwikkelen en implementeren van complexe use-cases. Pynecone zorgt voor alles, van de front-end tot de back-end tot de implementatie van de applicatie. Pynecone is ontworpen om het proces van het bouwen van een volledige website vanaf het begin tot de implementatie van die app volledig via python te vereenvoudigen zonder dat je frontend-taal hoeft te leren en te schrijven.

Gebruik Cases en toepassingen van Pynecone

1. Om webgebaseerde machine learning-applicaties te implementeren

Pynecone werkt voor zowel front- als backend in webgebaseerde machine learning-applicaties. Het integreert met een database die handig kan zijn bij het opslaan van voorspellingslabels en andere relevante gegevens. Deze database kan zelfs worden gebruikt om de modelparameters op te slaan, zodat het model zijn parameters kan laden en voorspellingen kan doen.

2. Op het gebied van datawetenschap, het bouwen van visuele dashboards

Visualisaties zijn cruciaal bij het omgaan met Data Science. Ze vertellen hoe goed een bedrijf draait, hoe goed een toeleveringsketen wordt onderhouden en hoe goed de applicaties presteren. Met Pynecone kunnen deze visualisatiedashboards eenvoudig worden gemaakt met behulp van de daarin beschikbare grafiekcomponenten.

3. Website prototypes bouwen in korte tijd

Tijd is essentieel bij het bouwen van prototypes en het presenteren ervan aan de klant. Hoe sneller men bouwt, hoe sneller men feedback krijgt en hoe sneller men de juiste wijzigingen kan aanbrengen. Pynecone is het beste om in een mum van tijd lichtgewicht apps zoals zakelijke prototypen te bouwen.

4. Bij het maken en implementeren van grootschalige applicaties

Zoals besproken, is Pynecone erg handig bij het bouwen van lichtgewicht data science-applicaties. Maar het schuwt het niet om grotere te bouwen. Pynecone is heel goed in staat om grote websites met meerdere pagina's te bouwen, dankzij de eenvoudige integratie van React-componenten met Python.

Aan de slag – Pynecone installeren

Om Pynecone te installeren, moet de Python-versie 3.7 en hoger zijn en de NodeJS-versie 12.22.0 en hoger. Je kunt de nieuwste NodeJS downloaden van hun officiële van de. Alleen omdat we NodeJS downloaden, wil nog niet zeggen dat we Javascript-code gaan schrijven; het is slechts een vereiste voor het installeren van Pynecone. Nadat we ervoor hebben gezorgd dat we de juiste omgeving hebben, kunnen we doorgaan en Pynecone installeren met behulp van de pip-opdracht.

$ pip install pynecone

Hiermee wordt vervolgens de Pynecone-bibliotheek geïnstalleerd en enkele afhankelijkheden waarop deze zal vertrouwen.

Ons eerste Pynecone-project maken

In deze sectie leren we hoe u een nieuw Pynecone-project kunt maken. Open nu de CMD om een ​​nieuwe map aan te maken; laten we het pyne_project noemen. Laten we nu naar de gaan pyne_project directory en roep het commando aan pc begin.

$ mkdir pyne_project $ cd pyne_project $ pc init

Bij het installeren van Pynecone wordt daarmee de pc-opdrachtregeltool geïnstalleerd; deze tool wordt gebruikt om nieuwe projecten te maken en uit te voeren. De opdracht pc init maakt een nieuw Pynecone-project door enkele bestanden en mappen te maken, die hieronder te zien zijn (ik heb pyne_project geopend in VS Code)

Ons eerste Pynecone-project maken | Python

We zien dat pc begin heeft mappen gemaakt zoals pyne_project (vergelijkbaar met de naam van de map die we hebben gemaakt), en bestanden zoals pcconfig.py, pyne_project.py (ook hier is de .py-bestandsnaam vergelijkbaar met de naam van de map die we hebben gemaakt), enz. De map Assets slaat alle statische bestanden van onze websites op, zoals afbeeldingen die we op de website willen weergeven, worden hier opgeslagen. Het .web is waar de front-end van Pynecone wordt gecompileerd naar een NextJS-app. De pcconfig.py bevat de configuraties voor onze applicatie.

Over deze bestanden hoeven we ons geen zorgen te maken; het enige bestand dat we gaan bewerken is het pyne_project.py die zich in de map pyne_project bevindt. Dus eigenlijk hebben we een map pyne_project gemaakt en aangeroepen pc begin, die op zijn beurt een andere map pyne_project creëerde en een bestand met de naam pyne_project.py waaraan we zullen werken. De pyne_project.py bevat al wat democode, dus typ nu de onderstaande opdracht in de CMD om onze demowebsite uit te voeren.

$ pc run

Hiermee wordt de code uitgevoerd en het duurt even wanneer u deze opdracht voor het eerst gebruikt pc loopt voor een nieuw project. Nu hebben we toegang tot de website vanaf de localhost:3000

python

We kunnen zien dat de webpagina ons vertelt om te bewerken pyne_project.py in de pyne_project map, die is gemaakt met behulp van pc begin. pers ctrl + c om de server te stoppen.

Een eenvoudige web-app bouwen - Vermenigvuldigen en delen

In dit gedeelte zullen we onze nieuwe website helemaal opnieuw maken en alles begrijpen wat er komt kijken bij het bouwen van de applicatie. De website die we gaan maken is een eenvoudige applicatie die 2 knoppen bevat genaamd Vermenigvuldigen, wat een getal met 2 vermenigvuldigt als we erop klikken, en Verdelen, die een getal door 2 deelt als we op de knop drukken.

Het eerste dat we gaan maken is een klasse genaamd Land. Deze klasse compromitteert alle variabelen die in onze toepassing kunnen veranderen, en we definiëren zelfs de functies die deze variabelen in de klasse zelf veranderen. Laten we eens kijken naar een voorbeeldcode hieronder:

import pynecone as pc class State(pc.State): starting_value = 1 def multiply(self): self.starting_value *= 2 def divide(self): self.starting_value /= 2 

Hier definiëren we deze klasse die erft van de pc.Staat. Aangezien we een toepassing maken die een getal deelt en vermenigvuldigt met 2, moeten we een startwaarde instellen voor dit getal. Dus in de bovenstaande code hebben we een variabele gedefinieerd beginwaarde en vervolgens een waarde van 1 doorgegeven. We hebben zelfs de functies gedefinieerd vermenigvuldigen en verdeling, die de waarde van deze aangeroepen variabele wijzigen beginwaarde, dwz vermenigvuldig het met 2 of deel het door 2.

Deze functies, vermenigvuldigen en delen, zijn bekend bij Evenementbehandelaars. Gebeurtenishandlers zijn de enige mogelijke manier om de staat (en zijn variabelen) in een Pynecone-toepassing. Deze worden aangeroepen als reactie op gebruikersacties; wanneer een gebruiker op een knop Vermenigvuldigen klikt, wordt deze vermenigvuldigingsfunctie geactiveerd. Deze acties worden gebeurtenissen genoemd. Dus dit is hoe we deze klasse maken, waar we alle variabelen definiëren die in de toepassing zullen worden gebruikt en de functies die deze variabelen zullen veranderen.

Nu gaan we het frontend-gedeelte voor onze applicatie schrijven, knoppen maken voor vermenigvuldigen en delen en dit zelfs weergeven beginwaarde in de browser. Dit alles wordt gedaan in Python met behulp van de Pynecone-bibliotheek zelf. Voor het schrijven van het frontend-gedeelte van de applicatie maken we een functie met de naam index en schrijven we het frontend-gedeelte erin. Het volgende is de code voor de voorkant van onze applicatie:

def index(): return pc.hstack( pc.button( "Multiply", color_scheme="blue", border_radius="1em", on_click=State.multiply, ), pc.text(State.starting_value , font_size="2em"), pc.button( "Divide", color_scheme="red", border_radius="1em", on_click=State.divide, ), )

De eerste functie die we hebben gebruikt is de hstack() functie van Pynecone. hstack() laten we knoppen maken en deze horizontaal plaatsen. Voor verticaal gebruiken we iets genaamd vsstapel().

Om de knop te maken, hebben we de knop() van Pynecone. En de parameters die in deze functie worden gebruikt spreken voor zich, dwz de eerste parameter is de knopnaam ("Vermenigvuldigen" en "Verdelen", in ons geval), is de volgende de kleurenschema, die de kleur van de knop definieert, gevolgd door dat is de grensradius, wat overeenkomt met hoe gebogen de randen moeten zijn. De laatste parameter is de bij klikken, die bepaalt welke functie moet worden aangeroepen/welke actie moet worden ondernomen wanneer op de betreffende knop wordt geklikt. Voor de Vermenigvuldigen knop, de bij klikken is ingesteld op de functie vermenigvuldigen (functie vermenigvuldigen gedefinieerd in de klasse die we hebben gemaakt) en voor de Verdelen knop, deze is ingesteld op de deelfunctie.

De tekst() van Pynecone wordt gebruikt om de waarde van de beginwaarde weer te geven. Al deze functies hstack(), knop() en tekst() worden Componenten genoemd die de frontend bouwen. Onze website Vermenigvuldigen en delen is bijna voltooid. Om de website te laten werken, moeten we de routering en het compileren definiëren, wat als volgt wordt gedaan:

app = pc.App(state=State)
app.add_page(index)
app.compile()

Eerst definiëren we welke status moet worden gebruikt in de pc.App() functie. Omdat we er maar één hebben, geven we dit door aan de variabele in de pc.App(). Vervolgens is onze root-URL, wat onze startpagina is, en dit zal de index zijn omdat we in de functie index() de frontend voor onze applicatie hebben gedefinieerd, dus geven we de functienaam, dwz index, door aan de app. pagina toevoegen(). Ten slotte compileren we onze app met behulp van de app.compile()

Testen - Vermenigvuldig en verdeel de app

In dit gedeelte zullen we onze applicatie uitvoeren en ervoor zorgen dat deze correct werkt. Ten slotte hebben we alle code geschreven en een frontend voor onze applicatie gemaakt. Gebruik nu de opdracht pc run om de website te runnen.

Een eenvoudige webapp bouwen - Vermenigvuldigen en delen met Pynecone | python | volle stapel

We kunnen zien dat de website succesvol wordt beheerd. Er zijn twee knoppen genoemd Vermenigvuldigen en Verdeling, en tussen deze twee knoppen zien we de waarde van de variabele beginwaarde, die is gedefinieerd in de klasse die we hebben gemaakt. Nadat we 3 keer op vermenigvuldigen hebben geklikt, krijgen we de volgende uitvoer.

Een eenvoudige web-app bouwen - Vermenigvuldig en deel met behulp van Pynecone

Nadat we 5 keer op delen hebben geklikt, krijgen we de volgende uitvoer

volledige stapel

Dus onze eenvoudige Vermenigvuldigen en Delen App werkt prima. Om de naam van de applicatie te wijzigen, kunnen we een parameter met de naam titel toevoegen in het app.add_page() en geef het de naam van de website

app.add_page(index, title="Multiply and Divide App")

Door het veranderen van de titel, kunnen we de app-naam van onze website wijzigen, nu wanneer we de pagina opnieuw laden, wordt de naam gewijzigd

Een eenvoudige webapp bouwen - Vermenigvuldigen en delen met Pynecone | volle stapel

Wat maakt Pynecone anders dan anderen zoals Flask?

Pynecone is een relatief nieuw webframework dat is ontworpen om applicaties volledig in Python te bouwen. Flask is een van de populaire bibliotheken die worden gebruikt om websites in Python te bouwen. Python met Flask is voornamelijk voor de backend van een applicatie, waar de ontwikkelaar de frontend-code moet schrijven. Wat Pynecone anders maakt, is de mogelijkheid om zelfs het frontend-gedeelte van de website in Python zelf te schrijven, waardoor de overhead van het leren van HTML, CSS en Javascript wordt verminderd.

Een ander ding dat Pynecone onderscheidt van andere bibliotheken zoals Flask en Django, is dat Pynecone de volledige code compileert in een NextJS/ReactJS-app, wat echt nuttig zal zijn omdat daarmee de reactiebibliotheken binnen enkele uren in Python kunnen worden gecombineerd in vergelijking met andere bibliotheken die veel langer duren. De Pynecone wordt geleverd met meer dan 50 componenten, waardoor er voldoende zijn om eenvoudig datawetenschapstoepassingen te bouwen.

Conclusie

In dit artikel hebben we een nieuw webframework doorgenomen, Pynecone genaamd, dat websites volledig kan bouwen van front-end tot back-end via Python. In de toekomst zal Pynecone deze website-gebaseerde applicaties zelfs inzetten. We hebben een walkthrough gezien van hoe Pynecone te installeren en ermee aan de slag te gaan. We hebben ook gekeken naar het projectformaat en de verschillende componenten die in de Pynecone-applicatie passen.

Enkele van de belangrijkste afhaalrestaurants hiervan zijn:

  1. Pynecone is een full-stack webframework voor Python.
  2. Het biedt een eenvoudig te gebruiken API, waardoor het bouwen van het frontend-gedeelte van de applicaties eenvoudig wordt.
  3. Met Pynecone is het eenvoudig om verschillende ReactJS-bibliotheken toe te voegen in Python.
  4. Pynecone zal in de nabije toekomst zelfs de inzet van applicaties bevatten met een beter webframework.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt. 

spot_img

Laatste intelligentie

spot_img