Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Integrações com React Native - #9 RN + Python + MySql

19/10/2021

Nesse tutorial continuaremos a integração entre o React Native e o Python com Django, realizando uma listagem de dados vindos do banco de dados.

Listagem de dados no app com Python

Vamos criar a screen pokedex. Não esqueça de adicionar essa screen no views/index.js e no entry point App.js, conforme mostrado nas últimas aulas.

config/config.json

Vamos adicionar a url do Python:

"urlRootPython": "http://192.168.0.103:8000/"

views/Pokedex.js

A screen pokedex listará os pokemons cadastrados no banco:

import React,{useState,useEffect} from 'react';
import config from "../config/config.json";
import {Image, ScrollView, Keyboard, Text, TextInput, TouchableOpacity, TouchableWithoutFeedback, View} from "react-native";
import {css} from "../assets/css/Css";

export default function Pokedex({navigation}) {

    [pokemons,setPokemons]=useState(null);

    useEffect(()=>{
        listPokemons();
    },[]);

    async function listPokemons() {
        let reqs = await fetch(config.urlRootPython+'pokedex/',{
            method: 'GET',
            headers:{
                'Accept':'application/json',
                'Content-Type':'application/json'
            }
        });
        let ress = await reqs.json();
        setPokemons(ress.data);
    }


    return (
        <View style={css.container}>
            <View style={css.header}>
                <Image style={css.header__img} source={require('../assets/img/logo.png')} />
            </View>

            <ScrollView style={css.footer__dex}>
                {pokemons && (
                    pokemons.map((elem,ind)=>{
                        return (
                            <View key={ind}>
                                <Text>{elem.name}</Text>
                                <Image style={{width: 100, height:100}} source={{uri:elem.image}} />
                            </View>
                        )
                    })
                )}
            </ScrollView>
        </View>
    );
}

Bora agora partir pras configurações do backend python.

project/urls.py

Neste arquivo criaremos a rota pokedex:

from app.views import pokedex

urlpatterns = [
    path('admin/', admin.site.urls),
    path('pokedex/', pokedex),
]

app/views.py

No arquivo views criaremos a lógica do backend Python:

from django.shortcuts import render
from django.http import HttpResponse
from sqlalchemy import create_engine
import pandas as pd

# Create your views here.
def pokedex(request):
    con = create_engine('mysql://root:@localhost/app')
    df = pd.read_sql_table('pokemons',con)
    print(df)
    return HttpResponse(df.to_json(index=False,orient='table'))

Baixando a lib para MySql

Para baixar o pacote MySql do Python vamos acessar este site e baixar o pacote de acordo com a versão do seu Python. Para verificar a versão do seu Python, basta acessar o seu terminal de comando e rodar o comando:

python

Após baixar o arquivo acima, cole-o na pasta raiz do seu projeto. Em seguida rode o comando:

pip install NOME_DO_ARQUIVO (Ex: mysqlclientâ??1.4.6â??cp38â??cp38â??win_amd64.whl)
pip install sqlalchemy
pip install pandas

Para rodar o nosso servidor em Python digitamos o seguinte comando:

python manage.py runserver 192.168.0.103:8000

Lembrando que o ip setado acima deve ser o ip da sua máquina.

Sucesso nos códigos e na vida!

Precisa de aulas particulares? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Integrações com React Native - #8 RN + Python
Nesse tutorial aprenderemos como integrar um aplicativo feito com React Native com a linguagem de programação Python.
Saiba mais!
Integrações com React Native - #10 RN + Context API
Nesse tutorial aprenderemos como propagar um estado da aplicação por todas as screens, podendo acessar determinadas informações de qualquer ponto do app.
Saiba mais!
React JS
Nessa seção aprenderemos sobre essa importante biblioteca Javascript desenvolvida pelo Facebook para facilitar a construção backend dos nossos websites.
Saiba mais!