最近开始学习老齐《Django实战》的内容,希望能够学会一些前端开发的知识,能够独立完成一些简单的界面编写。
在这里将操作过程及自己的笔记放在博客上,以备查阅和复习;
1.Django起步
1.1安装Django
sudo pip install Django
安装好后,可以先进入到Python的交互模式中,查看所安装的Django版本
import django
print(django.get_version)
基础设施已经建好,下面要创建项目了
1.2.创建项目
Django中的项目(project)可以看做是一个专有名词,因为后面还有一个与之有关的名词——应用(applicantion)
所谓“项目”,可以理解为一个网站
先规划好项目创建在什么地方,比如我放在桌面上,在终端输入:
~/mysite $ django-admin startproject mysite
看一下这个目录,多了一个mysite子目录,mysite就是项目名称
准备就绪,执行下述操作
$ python manage.py runserver
执行上述命令后,如果一切正常,最终会看到下面的提示信息:
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C
提示信息的第一行代码表示已经启动了一个服务,可以通过 http://127.0.0.1:8000/ 访问;提示信息的第二行代码说明了结束当前服务的方法——按Ctrl+C组合键。
1.3.创建应用
项目已经创建好,网站也有了,接下来要实现网站的具体功能。在Django中,人们把具体的功能成为“应用”(application)
在终端中进入到刚才创建的项目目录,即manage.py文件所在的目录,然后执行:
python manage.py startapp blog
执行了语句后,在目录中多了一个blog,其中有了默认的文件和目录。
blog就是在项目mysite中新建的一个应用。当新的应用创建后,Django会自动在这个应用中添加一些文件。
2.编写博客的数据模型类
设计数据库和表结构是做网站的基础。在Django中,我们不需要通过SQL语句直接跟数据库打交道,而是完全用Python的方式创建数据模型,之后交给Django完成数据库的操作。
2.1 数据模型类
利用Django开发网站系统,一般情况下,要先编写数据模型,就是在./blog/models.py中写一个类,这个类与数据库中的表具有对应关系。
下面就在./blog/models.py中编写博客的数据模型类Blog,本质上它是一个继承了django.db.models.Model的类
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class BlogArticles(models.Model):
title = models.CharField(max_length = 300)
#规定了字段title的属性为CharField类型,并以参数max_length=30的形式说明字段的最大数量
author=models.ForeignKey(User,related_name="blog_posts", on_delete=models.CASCADE)
#通过字段author规定了博客文章和用户之间的关系:一个用户对应多篇文章
#ForeignKey()就反映了这种“一对多”关系。
#类User就是BlogArticles的对应对象,
#related_name = "blog_post"允许类User反向查询到BlogArticles
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
class Meta:
ordering = ("-publish",)
def __str__(self):
return self.title
执行python manage.py makemigrations
,简历数据库表,并在此基础上真正创建数据库,执行:python manage.py migrate
本项目使用SQLite数据库,并且在setting.py中规定了数据库文件存放在项目根目录中。这样就建立了博客的数据库——这是基础,接下来就是发布博客,并保存到这个数据库中。
2.2 发布博客文章
先用最简单的方式——使用Django默认的管理功能就可以发布文章。要使用此功能,必须先创建超级管理员,并牢记自己所使用的用户名和密码:
python manage.py createsuperuser
记住上面的用户名和密码,然后运行服务器,在地址栏输入http://127.0.0.1:8000/admin/,输入刚才的用户名和密码就可以进入系统。
用编辑工具打开./blog/admin.py,然后输入代码:
from django.contrib import admin
from .models import BlogArticles
admin.site.register(BlogArticles)
#将BlogArticles类引入到当前环境,然后注册到admin中
再进入到blog中,可以看到Blog articles,进入并选择“Add”添加博客文章。
在文章的列表页,可以看到所有已发布的文章标题。
为了让列表页信息丰富,还可以再admin.py中多写点东西:
from django.contrib import admi