【django 2】モデルdjango 1.10+sqlite 3
3723 ワード
Pythonバージョン3.5、djangoバージョン1.10
1新規プロジェクト
django-admin.py startproject website1
2サーバーを起動し、正常かどうかを確認
manage.py runserver
3工事website 1一級フォルダの下に入ってappを新規作成する
python manage.py startapp appdemo
4新しく設立されたappをプロジェクトに組み込む
Website 1/Website 1/settingsを変更する.pyのINSTALL_APPSは、app名をこのメタグループに追加します.
5 website 1/urlsを変更する.pyファイル
4つのURLはトップページで、データを追加し、データを保存し、すべてのデータをクエリーする4つのリンクで、viewsの4つの関数に対応しています.
6 appdemo/viewsを変更します.pyファイル、4つの関数を追加
トップページと追加データページはhtmlファイルに直接戻り、appdemo/models/modelsを介して2つの関数を保存してクエリーする必要があります.pyファイル内のUserInfoクラスはデータベース操作を実現します.
djangoが所有するデータベースAPIには、クエリー、ソート、変更などの複数の関数が含まれています.詳細は、http://www.ziqiangxuetang.com/django/django-queryset-api.html
7 appdemo/models.pyでデータベース操作クラスUserInfoを記述する
8 htmlファイルの作成
index.html
addUser.html
showData.html
エラー:
1 You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data.
解決策:フォームのactionリンクに「/」を付ける
2 Forbidden (403) CSRF verification failed. Request aborted
htmlフォーム入力部の前に「{%csrf_token%}」を付ける
1新規プロジェクト
django-admin.py startproject website1
2サーバーを起動し、正常かどうかを確認
manage.py runserver
3工事website 1一級フォルダの下に入ってappを新規作成する
python manage.py startapp appdemo
4新しく設立されたappをプロジェクトに組み込む
Website 1/Website 1/settingsを変更する.pyのINSTALL_APPSは、app名をこのメタグループに追加します.
5 website 1/urlsを変更する.pyファイル
from django.conf.urls import url
from django.contrib import admin
from appdemo import views as appdemo_views
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^$', appdemo_views.index, name='index'),
url(r'^addUser/', appdemo_views.addUser, name='addUser'),
url(r'^saveInfo/', appdemo_views.saveInfo, name='saveInfo'),
url(r'^queryAll/', appdemo_views.queryAll, name='queryAll'),
]
4つのURLはトップページで、データを追加し、データを保存し、すべてのデータをクエリーする4つのリンクで、viewsの4つの関数に対応しています.
6 appdemo/viewsを変更します.pyファイル、4つの関数を追加
from django.shortcuts import render
from .models import UserInfo
# Create your views here.
def index(request):
return render(request, 'appdemo/index.html')
def addUser(request):
return render(request, 'appdemo/addUser.html')
def saveInfo(request):
username = request.POST['username']
password = request.POST['password']
UserInfo.objects.create(username=username, password=password)
return render(request, 'appdemo/index.html')
def queryAll(request):
data = UserInfo.objects.all()
return render(request, 'appdemo/showData.html', {'alldata':data})
トップページと追加データページはhtmlファイルに直接戻り、appdemo/models/modelsを介して2つの関数を保存してクエリーする必要があります.pyファイル内のUserInfoクラスはデータベース操作を実現します.
djangoが所有するデータベースAPIには、クエリー、ソート、変更などの複数の関数が含まれています.詳細は、http://www.ziqiangxuetang.com/django/django-queryset-api.html
7 appdemo/models.pyでデータベース操作クラスUserInfoを記述する
from django.db import models
# Create your models here.
class UserInfo(models.Model):
username = models.CharField(max_length=30)
password = models.CharField(max_length=30)
def __str__(self):
return self.username+", "+self.password
8 htmlファイルの作成
index.html
データ
すべてのデータ
addUser.html
showData.html
{% for d in alldata %}
{% endfor %}
{{d.username}}
{{d.password}}
エラー:
1 You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data.
解決策:フォームのactionリンクに「/」を付ける
2 Forbidden (403) CSRF verification failed. Request aborted
htmlフォーム入力部の前に「{%csrf_token%}」を付ける