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')

の最後の部分