😺
【Django】Pythonで作るRest API【25Vite + React】
【25Vite + React】
YouTube: https://youtu.be/dtE_47_vfFw
今回は「Vite」で「React」のセットアップを行います。
まずは、「django」のアプリでローカルサーバーを起動して、
ポスト一覧のページを表示しておきます。
そうしましたら、
デスクトップに「react-app」というフォルダを作成して、
もう一枚、新しくVSコードのウィンドウを起動して、
こちらで上記のフォルダを表示します。
ここまででできましたら、
こちらのページから以下のコマンドをコピーして、
「react-app」の方のターミナルで実行します。
npm create vite@latest
プロジェクト名の部分は「.」を
テンプレートは「react」を
言語は「Javascript」を選択します。
次にフォルダとファイルのDLができましたら、
npm install
を実行して、ライブラリのインストールを行います。
「Vite」で作成した「React」のアプリケーションは
npm run dev
で起動します。
ここまでできましたら、
「React」側から「django」側にポスト一覧取得のリクエストを送信してみましょう。
App.jsxに以下のコードを追加します。
react-app/src/App.jsx
import { useState, useEffect } from 'react'
import reactLogo from './assets/react.svg'
import './App.css'
function App() {
const [count, setCount] = useState(0)
useEffect(() => {
const getPosts = async () => {
const res = await fetch('http://localhost:8000/posts/')
const data = await res.json()
console.log(data);
}
getPosts()
}, [])
return (
<div className="App">
<div>
<a href="https://vitejs.dev" target="_blank">
<img src="/vite.svg" className="logo" alt="Vite logo" />
</a>
<a href="https://reactjs.org" target="_blank">
<img src={reactLogo} className="logo react" alt="React logo" />
</a>
</div>
<h1>Vite + React</h1>
<div className="card">
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
<p>
Edit <code>src/App.jsx</code> and save to test HMR
</p>
</div>
<p className="read-the-docs">
Click on the Vite and React logos to learn more
</p>
</div>
)
}
export default App
今回は「django」側で「cors」の設定をしていないので、
コンソールにエラーが出ていることが確認できます。
次回は「django」側に「cors」の設定を行い、
こちらの問題を解決します。
Discussion