Django快速入门3
前言
Django中不溜教程(1)快速入门1
对Django进行了介绍,并搭建起环境,完成了最简单的一个视图访问指定字符串的操作。
Django中不溜教程(2)快速入门2
对Django中的ORM形式的数据库操作进行了初步学习,并在命令行中进行了新增数据演示。
前两个章节的知识我们是独立学习的,接下里这一章节我们就将前两个章节的基础上实现,请求访问视图,在视图上访问数据库,并且将数据库的数据返回给客户端的浏览器上进行显示。如果有遗忘可点击上面链接进行复习。
在视图中操作模型
其实操作很简单:
打开视图文件 views.py文件,引入模型类,然后在处理请求的函数体中调用模型的查询API,最后将查询的结果指定在response中进行返回即可。
#views.py
from django.http import HttpResponse
from django.shortcuts import render
from .models import news
# Create your views here.
def index(request):
# 模型.objects返回的是一个Manager对象
# Manager包含很多对模型操作的函数,主要是查询,其中all()表示获取所有的数据
# all()返回的是一个QuerySet类型的集合
newsList = news.objects.all()
return HttpResponse(newsList)
接着等待服务器重启之后再次访问路径查看效果。发现我们已经可以在访问的页面中显示数据库中的真实数据,当然当前数据显得形态丑陋简单,这里可以配置html,css进行美化,我们在当前入门demo里不深究,这里还需要使用到
模板
技术我们还未接触。
admin站点
介绍 admin站点
Django 会
全自动
地根据模型创建后台界面。包含了管理员账号,模型对应表的增删改查,操作记录等功能,解放了开发者需要为一套系统专门开发一套完整的cms系统。
比如一个新闻网站的场景:
Django 产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中。站点管理人员使用管理系统来添加新闻、事件和体育时讯等,这些添加的内容被显示在公众页面上。Django 通过为站点管理人员创建统一的内容编辑界面解决了这个问题。
管理界面不是为了网站的访问者,而是为管理者准备的。
创建一个管理员账号
运行以下命令来创建登陆管理页面的用户。
python manage.py createsuperuser
接下来根据提示输入用户名,邮箱,密码,密码重复即可。
访问admin站点
Django admin站点默认就是启用的,启动服务器输入路径:
http://127.0.0.1:8000/admin/
进行访问。
登陆后看到如下页面:
admin站点常用基本配置
加入自定义模型的管理
我们发现其中默认只有Groups和Uers的相关管理功能,这两个主要是负责admin站点权限和管理员管理的,我们还想要对我们自己创建的模型对象进行管理。
我们需要对模型进行注册动作。
打开应用目录下的admin.py文件,我们在这里通过代码将模型加入admin站点管理中。
from django.contrib import admin
from myapp.models import news
# Register your models here.
#将模型注册到admin站点,以后新增模型如果想要在admin站点中管理也需要注册
admin.site.register(news)
带服务器重启之后刷新admin站点,遍可以查看到news模型的管理,自行进行操作体会一下admin站点功能的便捷之处。
修改语言和时区
当前admin站点内的文字都会英文,我们可以通过配置修改语言。
这两处修改都在项目目录下的setting.py文件中,修改LANGUAGE_CODE 和TIME_ZONE
#指定语言为简体中文
LANGUAGE_CODE = 'zh-hans'
#指定时区为亚洲上海
TIME_ZONE = 'Asia/Shanghai'
总结
这里我们将manage.py相关命令和各个文件功能回顾总结一下:
manage.py命令
#在项目内创建新应用
python manage.py startapp appname
#启动服务器
python manage.py runserver
#为模型的改变生成迁移文件
python manage.py makemigrations appname
#应用迁移文件
python manage.py migrate
#在django项目内进入带有django环境的终端
python manage.py shell
文件功能
项目目录文件
__init__.py:表示当前文件夹是一个包,无其他含义。
settings.py:项目的配置文件,主要有DATABASES数据库配置,INSTALLED_APPS插拔应用,LANGUAGE_CODE语言,TIME_ZONE时区。
urls.py:项目的url路径映射配置,这里只包含完整路径中应用名称部分,并引入各个应用的urls.py
wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口,目前用不到。
应用目录文件
migrations文件夹:Django自动生成的数据库迁移文件,它会根据这些文件创建修改表,一般不需要我们进行操作。
__init__.py:表示当前文件夹是一个包,无其他含义。
admin.py:在这里进行模型注册到admin站点管理中。
apps.py:应用程序的元数据,对当前应用的描述配置。
models.py:定义模型,Django会根据模型创建表和生成操作表的api
tests.py:单元测试类
urls.py:配置当前应用下的视图与路径的映射
views.py:配置当前应用的视图,试图用于接受请求,执行业务逻辑,产生响应
我们通过三章教程演示了最基本的django操作,体会了他的视图,模型与admin站点的功能,当然这些还远远不够,接下来我们会对常用模块进行深入讲解。