satomanotebook

プログラミング勉強で学んだことのアウトプットなんかだったり思ったことだったり

git hub へソースコードをアップロード

New repository を選択
Repository name を入力し Create repositoryをクリック

ターミナルでフォルダに移動

リポジトリを作成
git init

ファイルの更新を反映
git add .

現在の状態
git status

git commit -m "first commit"

git remote add origin URL(gitからコピペ)

プッシュ
git push -u origin master

Djangoでwebサイト作成の流れ

仮想環境に入る

・プロジェクト作成
django-admin startproject 〇〇〇

・アプリ作成
python manage.py startapp 〇〇〇

・settings.py
INSTALLED_APPSの中にアプリ追加
DIRSにBASE_DIR / ['〇〇〇'] 追加

・サーバー起動
python3 manage.py runserver

・modelを作成してマイグレーション
python3 manage.py makemigrations
python3 manage.py

・アプリにurls.pyを作成

・プロジェクトのurl
path("", include(〇〇〇.urls')),
でアプリ先を指定

・セキュリティ
csrf_token

・スーパーユーザー作成
python3 manage.py createsuperuser

・models.pyで作成したclassを管理画面に表示
admin.pyに
from django.contrib import admin
from .models import Task

admin.site.register(〇〇〇) を追加

・pathで指定したurlに飛ぶ
path('login/', TaskLogin.as_view(next_page='tasks'), name='login'),
next_page= で指定できる

続きを読む

memo

プロジェクトのurl設定は'',include....
htmlを読み込む際にエラー出たので


プルダウンができるchoicesはCharfieldのmax_lengthに
特殊メソッドも同クラス内に書く

detail.html for文削除

ユーザー登録
from django.shortcuts import render
from django.contrib.auth.models import User

def signupfunc(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = User.objects.create_user(username, password)
return render(request, 'signup.html', {'some': 100})

request.POST.get()でいけた


modelsで作ったtaskを管理画面に表示
admin.pyに
from django.contrib import admin
from .models import Task

admin.site.register(Task)
追加

context_object_name = 'task'
url.pyで指定したnameをよく確認する

ログイン昨日
path('login/', TaskLogin.as_view(next_page='tasks'), name='login'),
next_page= で指定できる

メモ

仮想環境作成

#仮想環境の名前
python3 -m venv XXX

#ディレクトリに移動し仮想環境にする
source XXX /bin/activate

#仮想環境を閉じる
deactivate

#仮想環境を削除
rm -r XXX


Django プロジェクト作成~最初にすること

#プロジェクトを作成( . を付ける)
 django-admin startproject XXX .

"""
setteing.pyのDIR「BASE_DIR / 'XXX'」
manage.pyと同じ階層にXXXを作成
INSERD_APPS「XXX.apps」

urls.pyにincludeをインポート
path('', include('XXX.urls')),
アプリにurls.pyを作成し、上記入力したもの以外をコピー

makemigrationsを実行 最期にアプリ名を指定できる
python3 manage.py makemigrations

migrateを実行 上の変更を反映
python3 manage.py migrate

スーパーユーザー
python3 manage.py createsuperuser

サーバー立ち上げログイン

admin.py
admin.site.register(XXX)
model.pyをimportする

def _str__(self):
    rturn self.titl


urls.pyアプリ
from .views import TodoList
urlpatterns =[
    path('list/', TodoList.as_view()),
]

views.py
from django.views.generic.list import ListView
from .models import TodoModel

class TodoModel(ListView):
        template = 'list.html'
        model = TodoModel


list.htmlを作成(BASE_DIRのあるところ(manage.pyと同じ階層))

{% for item in object_list %}
<ul>
<li>{{ item.title}}</li>
<li>{{ item.memo}}</li>
</ul>
{% endfor %}

object_listはListViewの機能でmodelの中身をitemに入れていく

ulrs.pyにpath('detail/<int:pk>', TodoDetail.as_view())追加
TodoDetailをimport

views.pyにclass TodoDetail(DetailView):
    template_name = 'detail.html'
    model = TodoModel 追加
DetailView をimport(listを削除)

templateディレクトリにdetail.htmlを作成
{{ object.title }} 追加
urls.pyのpatheに /<int:pk>を追加
"""

bootstrapで見た目を整える

続きを読む