1Django プロジェクトフォルダを作ってサーバーにつなげてからアプリケーションフォルダをつくるまで

pythonでスクレイピングした結果をhtmlに表示するには!!!????

 

htmlを読み込むとpythonが天気情報をスクレイピングしてその結果がJavaScriptを通じてhtmlに反映されるようにしたいのです。

下のサイトを参考にしています。

【Python Django】初心者プログラマーのWebアプリ#2 HTMLテンプレート表示 - Qiita
Python DjangoフレームワークでHTML表示前回の簡単な文字表示アプリ記事の続きです。Hello World!と表示させた超基礎内容でした。今回は、pythonで処理した内容をキレイ…

 

Djangoという名のフレームワーク

APIってどんな風に使うんだろう・・・

こんなことはAPI使うのかな?

と思っていたらただのスクレイピングでした。

webスクレイピングで今日の天気と気温を取得 - Qiita
はじめにはじめまして、webスクレイピング素人です。BeautifulSoupを使ってtenki.jpから調布市の今日の天気と気温を取得してみました。環境言語python使用ライブラリ…

 

この記事がとてもわかりやすく、真似してつくりました。

webスクレイピングで今日の天気と気温を取得 - Qiita
はじめにはじめまして、webスクレイピング素人です。BeautifulSoupを使ってtenki.jpから調布市の今日の天気と気温を取得してみました。環境言語python使用ライブラリ…
import requests
from bs4 import BeautifulSoup

#tenki.jpの目的の地域のページのURL(東京都調布市)
url = 'https://tenki.jp/forecast/4/19/5510/16201/'

#HTTPリクエスト
r = requests.get(url)

bsObj = BeautifulSoup(r.content, "html.parser")
today = bsObj.find(class_="today-weather")
weather = today.p.string #天気

#print(today)   
print(weather)
print("天気:{}".format(weather))

結果

曇
天気:曇

とても、シンプルにできました。

すばらしい・・・・

 

で、この結果をブラウザで表示させるには???????

 

と調べていると、どうやらpythonのflaskというライブラリーを使うらしい、ということ。

ということでまずはターミナルでインストール

pip3 install flask

 

 

こっちはHTMLから情報を受け取って、pythoで処理をしてhtmlに変えすしくみ。

Pythonでじゃんけんポイっ 初心者向け Windows ローカルサーバで動かそう - Qiita
この記事は、Django Girls Japan Python初級者向け、「Pythonでじゃんけんゲームを作ろう」の勉強会用資料です。尚、記載者も初心者のため、何らかの不具合などござましたら申…

 

しかし動かない。

わからない。

htmlを読み込むとpythonが天気情報をスクレイピングしてその結果がJavaScriptを通じてhtmlに反映されるようにしたいのです。

Flaskではなく、Djangoも同じ働きをするようです。

 

次の記事がとてもやさしかったです。

【Django vs Flask】PythonのWebフレームワークを徹底比較-初心者にオススメは?

 

Djangoにきめた

なぜならDjangoの方が教材が豊富だったからです(amazonで検索した結果)

このページを参考にしました。

Djangoのインストールからプロジェクトの作成まで | ハイパー猫背
pythonのフレームワークと言ったらBottle,Flask,Djangoが定番ですが,今回は大規模なシステムの運用を想定してDjangoのインストール・導入からプロジェクトの作成を行い,起動してみます。また,管理画面へのログイン方法につ...
【Python Django】初心者プログラマーのWebアプリ - Qiita
人工知能○ Webアプリ情報X のPythonPythonのWebアプリケーションフレームワーク「Django」の初心者プログラマー用のwebアプリ作成チュートリアルです。人工知能、ディープラー…

インストールして、プロジェクトフォルダをつくる。

pip3 install django

ここからが違う・・・

コンソールでフォルダ、ファイルを作ってもらいます。

まずフォルダを作りたい場所に移動します。

コンソールで

cd /Users/otonone/Desktop/python_lesson/Django/

を実行すると

:Django [ユーザー名]のような表示がでてきます。

次にそのままプロジェクトファイルを作ってもらうコマンドを実行します。

django-admin startproject tryproject

tryDjangoは作成するファイル名です。自由な名前でかまわないそうです。

tryprojectフォルダができました。

サーバーとつなげる。

今までHTML文書を書いてその場でブラウザで読ませていました。

Djangoでは、サーバーでpythonを実行させるようです。(JavaScriptはブラウザで読み込まれるのであってサーバーはJSの情報をブラウザに渡すだけです)

 

正直なぜサーバーなのかはっきりと説明できないのですが。

 

 

そして、起動・・・ターミナルから動かさないといけない模倣。

サーバーを動かしてねという指示はmanage.py に書かれているようです。

cd tryproject
python3 manage.py runserver

そしてエラー

No such file or directory

とでた。

desktopにフォルダを移動したせいか。

指定してみる。

$ /Users/otonone/Desktop/python_lesson/Django/tryproject
$ python3 manage.py runserver

 

うまくいったかな?

次にブラウザでサーバーに接続。

http://127.0.0.1:8000

にアクセス。

うまくいかなかったので指示通りなにがしかをインストール。

pip3 install sqlparse

しかしブラウザが読み込まれない。

 

公式のチュートリアルを見つけるのでそれに従って試そう。

クイックインストールガイド | Django ドキュメント
The web framework for perfectionists with deadlines.

 

 

Djangoインストールされているのかな。。。とおもって確認。、

jupyter lab で

import django
print(django.get_version())

とうてばDjangoのヴァージョンがでる。

3.1.7

でた。

コンソールで

python3 -m django --version

と打っても同じ結果になった。

一つづつ実行していきました。

$ cd /Users/otonone/Desktop/python_lesson/Django/tryproject

を実行してから

$ python3 manage.py runserver

を実行。
そしたら・・・

Django version 3.1.7, using settings 'tryproject.settings'
Starting development server at http://127.0.0.1:8000/

成功したみたいだ!
アクセス!

やりました!

よくみると、cd(ディレクトリーを指定するコード)が抜けていたのでした。

てへ。

 

さて次は・・・・とおもいチュートリアル読んでいくと次の文言が。

このサーバは開発中の利用だけを考えて作られています。絶対に運用環境では 使わないでください (筆者たちの専門は Web フレームワークであって、Web サーバではありません)。

ん??

 

 

さて次は・・・アプリケーションフォルダを作成??やってみよう。

 

こちらも参考に。公式と見比べながら読み解いていきます。

【Python Django】初心者プログラマーのWebアプリ - Qiita
人工知能○ Webアプリ情報X のPythonPythonのWebアプリケーションフレームワーク「Django」の初心者プログラマー用のwebアプリ作成チュートリアルです。人工知能、ディープラー…

アプリケーションを作るには、 manage.py と同じディレクトリに入って、このコマンドを実行します:

アプリを作成する模様。

次のコマンドでアプリケーションフォルダなるものをつくるそうです。

 

$ cd /Users/otonone/Desktop/python_lesson/Django/tryproject
$ python3 manage.py startapp tryapp

 

manage.pyに「startapp」というコマンドの詳細が書かれているとのこと。アプリケーションフォルダを作成するコマンドを呼び出すコマンドです。

アプリケーション名は任意の名前でかまわないそうです。

 

実行結果。

 

command not found

エラーがでる。なぜ?

これだけ実行してみた。

python3 manage.py startapp tryapp

成功した、なぜ?

ファイルが作成されました。

 

ふう。。

 

 

プロジェクトファイルとアプリケーションファイルをつくりました(復習)

プロジェクトファイルは次のコマンドでつくります。

urls.pyをつくってくれます。

django-admin startproject プロジェクト名

models.pyとtemplatesフォルダとviews.pyは次のコマンドでつくります。

python3 manage.py アプリ名

プロジェクト名とアプリ名の二つのフォルダが作成されます。

プロロジェクトフォルダとアプリフォルダの違い

プロジェクトは、一つのサイトで使う全体のアプリを含みます。

そのひとつひとつのアプリが

例えばログインするときに動くアプリ

動画を再生する時に使うアプリ

検索をする時に使うアプリ

など違った仕事をしてくれます。

 

日常的に使われている「アプリ」という言葉とは意味が違いますね。

 

 

コメント