文章目录
前言
今天我们创建一个Django的library应用,
一、Django的应用是什么?
在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。
二、创建步骤
1.创建应用
在项目目录下创建
python manage.py startapp library
2.配置文件settings.py
更给项目目录里的settings.py文件具体更改如下:
1.在INSTALLED_APPS中添加应用目录
在INSTALLED_APPS中添加应用目录主要是把应用添加到项目里,每次创建一个新的应用就及时给应用添加进来。如图
2.更改DATABASES
DATABASES这里主要是设置要连接的数据库和配置,默认是sqlite3数据库,我们要使用mysql数据库配置如下图:
3.更改LANGUAGE_CODE
LANGUAGE_CODE默认是英文,我们要使用简体中文就可以更改成”ZH-Hans“
4.更改TIME_ZONE
TIME_ZONE默认是utc时间,我们需要本地的时间可以设置,以下是设置成亚洲上海时间
3.配置ursl.py
注:urls.py的配置主要是匹配请求过来的资源路径,根据匹配的资源路径在做下一步处理(返回需要的数据等)
1.配置项目目录下urls.py
更改内容:导入include模块,将资源路径添加进来。(library/这个是可以随意写的但是一般都是和应用一个名字)。
注:include 允许引用其他urlconfs。每当django遇到include()时,它会截断与此项匹配的url部分,并将剩余的字符串发送到urlconf以提供进一步处理,也能放在’fun_library’,'content/library’或者是其他路径下,这个应用都能正常工作。理念是即插即用,因为应用都有自己的urLconf(library/urls.py),他们能够被放在"library/"
2.配置应用目录下urls.py
创建过应用时应用目录下是没用urls.py文件的,需要自己创建一个这样的文件。在这个文件中添加以下代码。
注:先导入需要响应的视图from library import views(后面会写对应的视图函数,先导入library应用里的视图)path第一个参数是资源请求路径要匹配的,第二个参数是匹配到对应的资源请求路径要响应的内容,第三个参数是起个名字。
3.编写视图代码view.py
视图view.py在每一个应用里都有一个,是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面。它对外接收用户请求,对内调度模型层和模版层,统合数据库和前端,最后根据业务逻辑,将处理好的数据,与前端结合,返回给用户。视图层是真正的后端,是Python的‘主营业务’。.
如下:这是编写了一个index函数放回一个http响应都对象响应内容就是字符串里面的,这里编写的函数会和urls.py的结合起来
4.编写models.py
模型models.py在每一个应用里都有一个,主要用来定义数据库表和规则。Django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表。
from django.db import models
# Create your models here.
#出版商
class Publisher(models.Model):
name=models.CharField(max_length=30)
address=models.CharField(max_length=50)
city=models.CharField(max_length=60)
state_province=models.CharField(max_length=30)
country=models.CharField(max_length=50)
website=models.URLField()
def __str__(self):
return self.name
#作者
class Author(models.Model):
name=models.CharField(max_length=30)
def __str__(self):
return self.name
#作者详情
class AuthorDetail(models.Model):
sex=models.BooleanField(max_length=1,choices=((0,'男'),(1,'女')))
email=models.EmailField()
address=models.CharField(max_length=50)
birthday=models.DateField()
author=models.OneToOneField(Author,on_delete=models.CASCADE)
#书详情
class Book(models.Model):
name=models.CharField(max_length=100)
authors=models.ManyToManyField(Author)
publisher=models.ForeignKey(Publisher,on_delete=models.CASCADE)
publication_date=models.DateField()
def __str__(self):
return self.name
5.上传到数据库
#成迁移文件
python manage.py makemigrations
#同步到数据中
python manage.py migrate
数据库中已经添加进来
6.编写admin.py
这个文件是编写后台管理的,一个站点或者网站,除了给用户浏览及操作外,还需要对后台数据进行管理,比如添加商品,修改商品等等。Django提供了一个可插拔的后台管理系统------Admin应用,该系统可以从模型中读取元数据,并提供以模型为中心的界面。Admin后台管理系统不仅让管理员可以便捷地管理、发布、维护网站的内容,也为开发人员节约了大量开发时间
from django.contrib import admin
# Register your models here.
from library.models import Publisher,Author,AuthorDetail,Book
# 注册Publisher,Author,AuthorDetail,Book模型到admin站点
admin.site.register(Publisher)
admin.site.register(AuthorDetail)
admin.site.register(Author)
admin.site.register(Book)
7.创建站点管理员
这里创建一个Django后台admin管理账号方便一会使用
python manage.py createsuperuser
8.安装mysql客户端
由于配置了MySQL数据库就需要安装Mysql客户端
pip install mysqlclient
9.启动Django项目
py manage.py runserver
10.访问页面
1.正常访问页面
打开浏览器输入启动页面的地址加上我们配置的资源路径即可访问。如图:
1.访问管理页面
打开浏览器输入启动页面的地址加上admin/即可访问。如图:
输入刚才注册的账号密码登录后台管理页面,这里可以添加删除更改数据。