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で見た目を整える
続きを読むクロージャー
def after(x, y): def inner(): return x * y return inner a = after(10, 20) r = a() print(r)