diango支持多应用开发
多应用可以共享一个数据库,也可以分别使用不同的数据库
本篇只以一个数据库为例
分三步 1 models的配置 2 urls的配置 3 views的实现
1 关键点在models的内容
比如有两个app,下面分别对应2个models,其中hero和book的关系是1对多
from django.db import models
# Create your models here.
class Book(models.Model):
bookname = models.CharField(max_length=20,verbose_name="书名")
from django.db import models
from aplly.models import Book
# Create your models here.
class Hero(models.Model):
heroname = models.CharField(max_length=20,verbose_name="英雄名字")
book = models.ForeignKey('aplly.Book', on_delete=models.CASCADE)
2 urls的配置
首先是项目配置文件中的urls
from django.contrib import admin
from django.urls import path,include
from verify.views import index
urlpatterns = [
path('admin/', admin.site.urls),
path('', index, name='首页'),
path('aplly/',include('aplly.urls')),
path('verify/',include('verify.urls')),
]
其次是在app中创建urls并配置urls
from django.urls import path, include
from . import views
app_name = 'verify'
urlpatterns = [
path(r'', views.index, name='首页'),
]
3 views的实现
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
from .models import Hero
from aplly.models import Book
import random
# Create your views here.
def index(request):
name = random.choice([item+str(random.randint(0,9)) for item in ['sadsad','qweqwe','gfdjgj','popouit']])
book = Book(bookname=name)
book.save()
Hero(heroname='hero'+name,book=book).save()
return HttpResponse('12345')