djangoに挑戦のその後

こんにちはrunzouです。

djangoに挑戦したもののCSSがなかなか実装されない、ので

 

気晴らしに?

一旦HTMLとCSSの 模写?みたいのをすることにしました。

 

こんな感じで、HTMLは高校くらいからたまに触っているけど調べたことがなかったので今回ので少し、頭に入ったかな、、、、、

と言う感じ。

 

模写したサイトはここに載ってる架空建設会社のサイトです。

Webサイトの写経のやり方とレベル別のステップアップ方法を解説します | 転職のみちしるべ

 

こんな感じに

<!---->で タグの意味を調べて書き込んだ~

 

これをこの前のdjangoのindexファイルにぶち込みました、すると

こうなりました

 

なんかサイトっぽい!

下ネタは置いといて、これにCSSをちゃんと実行されるように

 

ちゃんとファイル構成を勉強しなきゃ。。。。?w

 

 

おしまい

~ djangoで webアプリに挑戦 part.2~

こんにちはrunzou。
これは前回の続きです、前回はこちら

~ djangoで webアプリに挑戦 ~ - runzou’s diary


前回は django でローカルサーバーを立ち上げて、ロケットの画面(インストールおめでと画面)を真っ白の背景に文字があるという
最高につまらないページにする事をしました。

今回は、また、この動画を勝手に参考にして、テンプレートなるものを使用して、上の部分にメニューがあるようなサイトを作成する〜

テンプレートをマスターしよう! | 初心者向けdjangoチュートリアル #2 - YouTube



ナビゲーションバー(上のメニュー)を表示~

<!DOCTYPE HTML>
<html>
    <head>

    </head>


    <body>
        <div class="navbar">
            <a href="/">Home</a>
            <a href="/about/">自己紹介</a>
        </div>
        <h1>Home</h1>
    </body>
</html>

~ djangoで webアプリに挑戦 ~

こんにちはrunzouです。

前回 python で webアプリを作るために Flaskをしました(ただの動画丸写し

記事はこちら↓

2022-09-13から1日間の記事一覧 - runzou’s diary

今回は、思い切って 少し難易度高そうな django に手を出してみようと思い、こちらの動画を参考にしました。(今日ももちろん丸写し)

Pythonウェブサービスを作ろう! 初心者向けdjangoチュートリアル #1 - YouTube

しかし、paiza cloud を使用しての動画だったので、自分のパソコンで環境構築しながら

進めていく〜!

ちなみに私の環境は macbook pro m1 で anacondaの仮想環境をしています。



django インストール

%  conda install django

をして django をインストールした〜

django でローカルサーバーを起動

% cd Desktop/runzou_app1

webアプリのファイルを作りたい場所に移動~

% django-admin startproject runzou_web_app

djangoプロジェクトを作る〜、名前はrunzou_web_app

cd runzou_web_app

runzou_web_appへ移動~

python manage.py migrate

さてこれはなんだ? 管理画面が使う上表をデータベースに自動的に作成・管理する機能です。
だって、それを構築するらしい、意味不明だ Hi,Tugi
実行するといっぱいなんか出てきてかっこいい感じになるよ

migrate


python manage.py runserver

これでサーバーが起動し、URLが表示される!やったね! 早速アクセスだ〜

django_sarver

なんかさ あのー ロケット飛んでるね わ すごい
意味不明すぎて 死ぬ

気を取り直してですね、 次です

さっきのロケット飛んでるページどんなURLでも見れるように?設定を変える

よくわかんないけど setting.py というファイルがあるのでその中の[]を["*"]に変える。
他端末から見れるってことかなって思ったけど、見れなかった、、
どういう意味なんだろう、、、、?

"""
Django settings for runzou_web_app project.

Generated by 'django-admin startproject' using Django 4.0.

For more information on this file, see
https://docs.djangoproject.com/en/4.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.0/ref/settings/
"""

from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-$mv&vlgp8(j5&c+ge79b53m2jljvlze@h9emq9p9g*#l=g_ij+'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ["*"]

最後の行の ["*"] が変更点~

djangoでappのファイルを作成

python manage.py startapp app1

これで app1 というアプリのファイルができる、そして!
作ったファイル名を setting.py(appを作ったからかめっちゃ追加の分ができてる?)の INSTALLED_APPS = [] の中に書き込む~

"""
Django settings for runzou_web_app project.

Generated by 'django-admin startproject' using Django 4.0.

For more information on this file, see
https://docs.djangoproject.com/en/4.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.0/ref/settings/
"""

from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-$mv&vlgp8(j5&c+ge79b53m2jljvlze@h9emq9p9g*#l=g_ij+'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ["*"]


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app1'                                                                  #これ
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'runzou_web_app.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'runzou_web_app.wsgi.application'


# Database
# https://docs.djangoproject.com/en/4.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


# Password validation
# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/4.0/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.0/howto/static-files/

STATIC_URL = 'static/'

# Default primary key field type
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

これだけでは画面は変わらないようで、まだロケットの画面のまま~

HTMLとかのviewを追加する~

次は、app1フォルダの中に、 templatesというフォルダを作ってその中に index.html (トップページのファイル)を作ってとりあえずタイトルを記入!

<h1>Hello,Runzou</h1>



さらに、templatesを作ると何故か勝手に views.pyがあるのでそれをこんな感じに変更

from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = "index.html"

みてる人から入力を受け取って、みてる人にHTMLを返す、らしい
サイトにアクセスすると、このpythonコードが実行されて、 class IndexViewの "index.html"が 画面に表示される、 ということだと思う事にした(ぇ

urls.pyで view と URL を結びつける~

urls.pyをvies.pyと同じフォルダに新規作成して、(setting.pyの近くにも同じ名前のがあるので一番下の辺りから少しコピーして再利用)このように記入~

from django.urls import path

from .views import IndexView

urlpatterns = [
    path('', IndexView.as_view()),
]

views.pyからIndexViewをimport して、 IndexViewで指定されているURLにアクセスするようになっている ってことだと思う事にした(

最後に、settin.py近くの方の ulrs.pyの最後の文を少し変更する、

"""runzou_web_app URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include("app1.urls"))
]

これで、OK~
そしてロケットの画面を更新すると!!

つまらない画像
楽しそうなロケットの画面はなんと!
すごくつまらない文字だけの画面になりましたとさ!!

まとめ?

まず、サイトにアクセスすると最後に変更したsetting.pyと同じフォルダ内のurls.pyにアクセスする

そして、そこでapp1内のurls.pyにアクセスするように命令される

んで、そこでviewを読み込むように命令されて、

views.pyでは index.htmlを表示させるように命令されてその結果

index.htmlで書いたものが表示されるらしい

遠回りすぎだろおおおおおおおおおおお これをしているだけでも頭こんがらがらがらがらがりそうでした



寝る

ポートフォリオが ない

こんにちは、runzouです。

テックアカデミーのPython+AI+データサイエンスセットを 終わったのはいいのですが

 

ポートフォリオ(製作物?)がないので何を作ろうかと迷っています。

そして思いつきで今日試すのは

 

pythonでwebアプリを作っていこうと思いました。理由は、、

大体PC使うときはChrome使ってるだろってことでとりあえず、、

 

Flaskと jinja2 を使用して適当に作ってみようと思う~

しかしだ、モチベーションが 紙のようにペラペラだ!助けてほしい

 

まずは

ds_env(python用に作った仮想環境)の中に

Flask をインストールしました、

flask_install

その後に、jinja2もインストールしました。

conda_install

(ってまあ動画の通りやるだけなんだけど)

とりあえず、次は動画の通りに(あ

 

フォルダ構成通りにフォルダとファイルを作っておきました。

こういう構成は作りながらやるのか、最初から作ってるのかわからないですね気になる、、人によるのかな、、

flask_file

この templatesファイルの名前は変えてはいけない、らしい~

まずはHTMLでトップ画面を作る~

と最終的にファイル名とかも色々変えて(丸写し)

こんな感じになりました

1

__int__

main

index

htmlはすこーし触ったことあるのでなんとなくやってることわかるんですが、

pythonファイルの方は 何やってんのかさっぱりわかりませんね、

テックアカデミーってなんだったんだろ()死滅

 

次はターミナルから作ったこれらを呼び出してGoogle Chromeで表示する 

をチャレンジ

 

ますますよくわからないけどこのようにしてターミナルに入力することでFlaskアプリを環境変数に一時的に設定、するらしい

tar

その後は flask run 

と命令すると実行されるらしいが、エラーが出たあああああああああ

error

さてどうしてくれようか

Error: Failed to find Flask application or factory in module 'flaskr'. Use 'FLASK_APP=flaskr:name' to specify one.

エラー: モジュール 'flaskr' で Flask アプリケーションまたはファクトリが見つかりませんでした。 'FLASK_APP=flaskr:name' を使用して指定します。

となったので、

flaskr:main.py とか

flaskr:"main.py" にしてみたけど

ダメだった どうしよう

 

とりあえず 寝る

 

 

朝起きたら意外と簡単に解決することがあるので

チャレンジしてみたけどやっぱダメだったので

Qiitaで質問しました 解決するかな、、、、

[Q&A] python webアプリ作成 Flask - Qiita

 

 

 

〜次回に続く かどうかはわからない〜

 

 

 

2022年 3月〜8月 のお話

こんにちは、Runzou です。

ここ最近はとても忙しいことが続いてブログのことをすっかり忘れていましたが、少し区切りがついたので書こうと思う。

最後に書いたものが3月くらいなのでその頃と比べるとだいぶ色々変化したが、無職なのは なんと 変わらないwwww

 

3〜8月でやったことの目次

 

 

1 . バンド

 確か、3月初め頃だったような終わり頃だったような、、

バンドメンバー募集 OURSOUNDS 

ここに18歳くらいの頃に登録してなんもしてなかったんですが、配信に来てくれてた人と話してて、ふと思い出し、自分のプロフィールを更新。

すると、キーボーディストを探していたようで、割とすぐ声をかけてくれて即座に参加させてもらった!(すっごいドキドキして、初のスタジオ練習では本物のドラムの音にビクビクしてましたw)

 

4月は静岡

場所:LIVEHOUSE UHU – Land of Music !

5月は藤枝

場所:LIVE HOUSE KOKOPELLI

6月は浜松

場所:LIVEHOUSE MESCALIN DRIVE

と ライブに参加させてもらった!

 

高校くらいの頃から、バンドには憧れていて舞台にたちたかったので

夢が叶ってよかった〜

 

しかし、何か違うと虚しさを感じそれを相談してみたら、、

解散してしまった!、、いや、自分からやめたんだな、

説明が難しいぞwwwwww

しかし、バンドリーダとは 今もたまに電話で話したりします。

彼の曲は結構聴きやすくて、なかなか心に残りますのでぜひ聞いてみてね!?

もしかして本人が消すかなあ、でも残しておいてほしい!

木森悠樹 MIKETEA - YouTube

この曲たちをライブで演奏して、なかなか盛り上がったな〜

ここにないのもあるから、アップしてほしいな〜w

しかし、いい経験だった!

 

ライブ映像もあるけど、ここには貼らないぞおw

恥ずかしいからなああああああああああああああ

 

2.Youtube

 

 バンドを誘ってくれたリーダーが、政治的なyoutubeチャンネルを一緒にやろう、と誘ってくれました!

政治にはあまり興味がないのだが、Youtubeチャンネルには興味があったので参加させてもらった。

リーダーは本格的に照明などを用意してくれて、私の家で撮影を行い、

コヤッキースタジオ的な感じで政治について彼が語り、私が疑問を投げかける的なスタイルでやってみたけど、

家庭の事情?で撤退させていただいたw(詳しくは、、、また記事にしようかな?w

私が参加していたチャンネルはこちら!↓↓

こもりゆうきの日本なまけ党 - YouTube

ぜひ見てみてね!

 

3.テックアカデミー

 これは高校くらいから興味があったプログラミングについて、がっつり学んでしまえと思って、2月後半頃に申し込みました。


プログラム :Python+AI+データサイエンスセット 第144期(2022/03/14〜2022/08/28)
プラン   :社会人プラン【24週間】
入金期限  :2022/02/08 (火)

■学費詳細
学費(税別) :479,000円
割引     :-23,950円(先割)
消費税    :45,505円
合計(税込み):500,555円 

という自分の中では膨大な金額をかけて挑んでみた!

基本的にはブログのような感じで色々な項目が書いてあって、それを丸写しして実行してなるほどぉってなって、自分なりにちょっと変えたりして遊んでなるほどぉってなる

 

そしてそれぞれの記事の最後に課題があって、(例えば"Hello World"って出力させよう〜みたいな)提出をする、合格もらったらOKみたいな感じでした。

あとは、週に2回メンタリングという学習を先生に報告したり質問したり、解説してもらったりする というものがあり、それに向けて主に進めるという感じです。

 

これは本当に自分が馬鹿だなと思ったところで、

プログラミングと言ったらアプリを作ったり、ホームページというイメージだったのですが、やってみたら なんか違うぞという感じでした! 

何が違うって、作る、というよりは調べる?という感じだった。(データ分析?みたいのがメインなので)

 

でもなかなか楽しかったのでこれからも遊び程度にやろうかな、、、?w

まぁ一番楽しいのはキーボードで文字を打ってる時だよねwwww()

 

さらに馬鹿なのは!

自分が住んでいるのが静岡の田舎なので求人がほとんどないということ!w

いやー失敗したねwwwwwwwwww爆発

でも、最後のメンタリングで色々ヒントが聞けたのでそこはよかったかも、、

 

Qiitaというのもはじめました。

テックアカデミーで質問すると即返答が返ってくるんですが、記事にしたりとかもしてみたかったので書いたりしてみました。

ライナあれぐれっしょん! 豪ドルでやろかっと - Qiita

これ以外の投稿は全て質問だった・・・w

 

 

666.まとめ

ということで今後の方針はですね、(急に)

バイト、もしくは派遣で働く

休みの日にデータ分析をする、これらのサイトを使用

SIGNATE

Kaggle

 

そして1ヶ月に1つブログで記事を書き、

勉強会に参加(これもメンタリングで教えてもらった)

検索フォーム - connpass

勉強会に参加する理由は、学んだプログラミングを生かす職場を探すためです。

あとは、新しい情報を得ることを忘れないようにすること。

 

とりあえず独立して新しいことをやるとか思い切ったことをしようとかは

自分には向いてないことがここ半年くらいでわかったので、、

ぼちぼちやってこっと、、、、

 

 

 

 

 

 

 

 

ここまでの、経過ですプログラミングで勉強ででで使ったもの

Qiita これは質問掲示板的な

qiita.com

コーデューと これはタイピング練習をする”とか+とかほらいつも使わないじゃんわかるう?なのでここで練習している

codeute.com

コードガールコレクション プログラミングをする?ゲームちょっとやった

paiza.jp

CheckiO これもゲームしかし! 難しすぎて無理でした。

 

py.checkio.org

 

この程度のメモ書きだ

ああ、もう大きい方間に合わないんじゃないかな!

実は、個人事業は廃業しました。2022/1/28 だったと思う。

 

そして失業保険をもらう手続きをして、何しようかなと色々ネットを漁ったら

こんなものが!

f:id:runzou:20220203195556p:plain

経済産業省のえっちい

このHPの少し下の

f:id:runzou:20220203195703p:plain

第4次産業革命のエロ画像

第4次産業革命スキル習得講座一覧ってなんだと思い

f:id:runzou:20220203195800p:plain

これを選択して 

f:id:runzou:20220203195905p:plain

こうなって

へぇ はあ ほお ご、ごじゅうまんち・・・・

f:id:runzou:20220203195939p:plain

あ。

 

 

 

 

わーい、3月からだが、それまで遊んで50万など払えないくらいの借金をしようと思う、なう。