データベースと連動して、商品番号を入れると、動的に 商品名と価格が表示されていくような注文フォームのWEBアプリを作成したいと考えています。
こういう質問の場合、回答がすさまじく長文になります。
がんばって書くので、がんばって読んでください。
質問文にあるようなWebページは一般的なWebページなので、一般的なWeb技術を調べれば良いと思います。
-
HTML
HTML5を勉強すれば良いです。4.01とか、XHTMLとか要らないです。
-
CSS
CSS3を勉強すれば良いです。
知らなくてもなんとかなる?
知らないとたぶんつまります、触りだけでも覚えましょう。
idとかclassとかだけでいいです。
:hoverとかは後回しにしましょう。
backgroundとかcolorとか簡単なのを覚えましょう。
HTMLとCSSは、一緒に解説されている本でも読むのが一番早いです。
-
HTTP
HTTP1.0で良いです。
1.1とか2とかQUICとか要らないです。基本だけ頑張りましょう。
HTTPの教科書でも読みましょう。
HTTPの教科書
知らなくてもなんとかなる?
Teratailで質問に答えてきましたが、HTTP理解していない人はトンチンカンな質問をしてきます。
覚えてた方が躓かなくて良いでしょう。
-
javascrpt
格好良いWebページを作りたいですか?
それならjavascriptは必須です。
paizaラーニングあたりにコンテンツがありますね。
それで良いと思います。
あとは以下のページとか?
https://ja.javascript.info/
TypeScriptは要らないと思います。
-
Git(GitHub)
絶対必要なので、学びましょう。
PyCharmあたりを使えば簡単に使えます。
VSCodeでも良いです。
「サルでもわかるGit入門」という本が、Kindle Unlimitedにありました。
基本は学べると思います。
-
ターミナル
九分九厘サーバは、Linuxです。
そのため操作はターミナルになります。
ついでに接続もSSHです。
例えば、開発機をUbuntuにしてみたり、Ubuntu on Windowsを使って見たり、慣れましょう。
EmacsとかViとかに慣れるのも良いかもしれませんが、開発はIDEを使うべきなので、テキストエディタで開発はしないように。
-
RDBMS
データベースです。
リレーショナルデータベースマネージメントシステムですね。
略称は、DB。
何か1つ入れて使いましょう。
PostgreSQL, MySQL, MariaDB, SQLServer, Oracleなどがありますが、最初の3個のうちのいずれかになると思います。
テキストに保存する?SQLite?
それはやめた方が良い。
商品番号から情報を引っ張るなんてまんまデータベースの仕事みたいなもんです。
redisやMongoDBみたいなのは、まだ要らないと思います。
-
SQL
DBは操作にSQLを使いますので、SQLも学びましょう。
create database, create table, insert, select, update, deleteあたりを覚えれば当座はしのげるでしょう。
-
開発言語
Pythonや、Java、Rust, Go(Go lang), C#, PHP, Ruby, JavaScript(Node.js)から1つですね。
VB.NETはお勧めしません。
これは本を読むのが良いでしょう。
-
Webフレームワーク
言語のWebフレームワークを学びましょう。
PythonならFlaskとかDjangoとか。
「言語名 Webフレームワーク」で大抵見つかります。
その時、人気が無いのとか、開発が昔に止まってしまっている物は選ばないようにする必要があります。
PythonならFlaskを選んでおけば、dubさんがしたいことは全てできます。
-
IDE
開発言語が決まったらIDEも見つかります。
IDEは統合開発環境です。
テキストエディタでも開発できますが、IDEを使った方が開発スピードが上がります。
PythonならPyCharmがお勧めです。
Web開発の場合は、有料のPyCharm Professionalを使うとさらに加速できるでしょう。
高いので、無料のPycharm Communityを使ったり、もちろんVSCodeを使う事もできます。
-
Webサーバ
NginxかApacheあたりです。
Nginxの方がシェアが上になったので、Nginxを選べば困らないと思います。
-
アプリケーションサーバ
Pythonの場合は、uwsgiか、gunicornあたりですかね。
びびっときた方を選びましょう。
私はgunicornの方が好きですが、gunicornはLinuxでしか動かないので、サーバ次第ですね。
-
セキュリティ
リクエストがあったので追加しました。
Webのセキュリティといったら、これですね。
IPA 安全なウェブサイトの作り方
ここに記載されているのは最低限対策が必要です。
また、IPA 安全なウェブサイトの運用管理に向けての20ヶ条 〜セキュリティ対策のチェックポイント〜あたりも参考になるはずです。
あと一応書いておきますが、PDFに記載がありますが、パスワードを保存する時は、Solt付きハッシュ値で保存する必要があります。
なにそれ?と検索していると、たぶんFlask-Bcryptとか、Flask-Scryptとかが引っかかると思います。
これらは古いので、Pythonで遣る場合は、PyPiにあるbcryptを使いましょう。
あとは、「Web セキュリティ診断」で検索すると色々ツールが出てくるので、それらを活用するのも良いと思います。
セキュリティはやり始めると、いつまで経っても終わらないので、自分ルールを作成して、自分が納得できるまでやってください。
-
(option)Webデザイン
Webを作ると必ず、格好良くしてくれとか、意味不明な依頼があるので、デザインにも注力した方が良いかもしれません。
-
(option)フロントエンドフレームワーク
React, Vue.js, Angularのどれかですね。
これを使う場合は、Flask側はREST Apiとして作成することになると思います。
Next.jsやNuxt.jsみたいなエコシステムを使った方が楽と思いますが、好みです。
これらを使った方が、より開発しやすく、より高度なUIが作成できます。
13か14まで学べば作れると思います。
あとはオプションとして、15,16を学ぶと開発しやすいです。
たぶんですが、
-
1ヶ月
-
1ヶ月
-
1ヶ月
-
触りだけで、かつすでにFlaskやってるみたいなので、1ヶ月
-
他のをやりながらなので、0
-
これも5と同じで、0
-
8と合わせて1-2ヶ月
-
0
-
既に学んでいるので0
-
既に学んでいるはずなので0
-
これはツールなので0
-
2週間くらい
-
上と同時にやるので0
-
不明(許容できるリスクを明確にしてください。)
-
納得できるまで?
-
最低2ヶ月
で、7.5ヶ月くらいかかりますかね。(セキュリティは別。許容できるリスクを明確にしてください。)
この○ヶ月は、1日4時間換算くらいだと思います。
ちなみに、上記は技術の話しか書いていませんので、設計は別です。
全部学んだあとじゃないと設計できないような気がしますが、ワイヤーフレームと画面遷移図さえあれば作れると思いますので、適当に作ってみましょう。
Ajax技術は、MPAで作る分には要らないです。
画面遷移しか情報とってきて表示しましょう。
格好悪い?
それだと、画面遷移しないで情報をとってくるAjaxが必要ですね。
Ajaxやり始めると途端にWeb作成は面倒になります。
jQueryとか使い始める気がしますが、jQeuryはやめて、Reactとかに行ってしまった方が早いと思います、面倒ですが、フロントエンドとバックエンドを分離して作成しましょう。
あと、下の方にメールを送ると書いてありますが、メールはPython Flaskから送信できます。
が、メールサーバが必要です。
SendGridみたいなサービスを使うか、自分で使っているサービスで送れないか確認しましょう。
あとは、たぶん、自分の中にしかない仕様を書き出して調整ください。
例えばですね、「一旦追加した商品も削除できる。」というのはありがちですが、
これは完全に削除しても良いのですか?
DBの場合、商品情報はマスタ系です。
マスタから削除しようと思うと、注文履歴とかも消すことになる気がします。
設計の話ですね。
たぶん意味が分からないと思いますので、頑張って学んでください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/05/02 06:46 編集