Djangoの小さなインスタンス
5787 ワード
1.Mysqlデータベース:
Djangoでは、モデルを使用する場合はappを作成する必要があります.次のコマンドを使用してTestModelのappを作成します.
django-admin startapp UserModel
これは、次のプロファイルsetting.pyに追加された名前と一致します.
userデータベースを事前に作成するには
settingファイルの変更
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'UserModel',
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',# mysql.connector.django
'NAME': 'user',
'USER': 'root',
'PASSWORD': '1234',
'HOST':'localhost',
'PORT':'3306',
}
}
userModel/models.pyファイルを変更します.上記のクラス名はデータベース・テーブル名を表し、models.Modelを継承します.クラス内のフィールドはデータ・テーブルのフィールドを表します.
class Test(models.Model):
name=models.CharField(max_length=20)
age=models.IntegerField()
sex=models.CharField(max_length=10,default=20)
端末で次のコマンドを実行します.
python manage.py migrate #
python manage.py makemigrations TestModel # Django
python manage.py migrate TestModel #
フロントエンドインタフェース
hello.html
Title
ユーザーの
ユーザーの せ
すべてのユーザーのfindAll.htmlインタフェースを表示
Title
{% for item in list %}
{%endfor%}
{{item.name}}
{{item.sex}}
{{item.age}}
/
ユーザーのインタフェースの追加
{% if data %}
{%endif%}
ユーザーのインタフェースの編集
{% if data %}
{%endif%}
uls.pyファイル
from django.urls import path
from MyQian import testdb
from django.contrib import admin
urlpatterns = [
path(r'admin/',admin.site.urls),
path(r'',testdb.index),
path(r'addUser/',testdb.addUser),
path(r'findall/',testdb.findAll),
path(r'delUser',testdb.delUser),
path(r'editUserContext',testdb.editUserContext),
path(r'editUser',testdb.editUser)
]
新しいパッケージMyQian、その下にtestdb.pyファイルを作成
from UserModel.models import Test
from django.shortcuts import render
from django.http import HttpResponseRedirect
def index(request):
return render(request,'hello.html')
#
def addUser(request):
if request.method=="POST":
name=request.POST.get('name','')
sex=request.POST.get('sex','')
age=request.POST.get('age','')
test1 = Test(name=name,age=age,sex=sex)
test1.save()
findAll(request)
return HttpResponseRedirect("/findall")
return render(request,'addUser.html')
def findAll(request):
inforList=[]
# objects all() , SQL SELECT * FROM
list = Test.objects.all()
# filter SQL WHERE,
#response2 = Test.objects.filter(id=1)
#
#response3 = Test.objects.get(id=1)
# SQL OFFSET 0 LIMIT 2;
#Test.objects.order_by('name')[0:2]
#
#Test.objects.order_by("id")
#
#Test.objects.filter(name="runoob").order_by("id")
#
for var in list:
context={}
context['name']=var.name
context['age']=var.age
inforList.append(context)
return render(request,'findAll.html',{'list':list})
def editUserContext(request):
getId=request.GET['id']
context={}
user=Test.objects.get(id=getId)
context['name']=user.name
context['sex']=user.sex
context['age']=user.age
context['id']=user.id
return render(request,'editUser.html',context)
def editUser(request):
getId=request.GET['id']
user = Test.objects.get(id=getId)
user.name=request.POST.get('name','')
user.sex=request.POST.get('sex','')
user.age=request.POST.get('age','')
user.id=getId
user.save()
return HttpResponseRedirect("/findall")
def delUser(request):
getId=request.GET['id']
test=Test.objects.get(id=getId)
test.delete()
return render(request,'findAll.html')
の最後の部分