Django基础
开发模式:
Django有两种模式,一种是“开发模式”,另一种是“生产模式”。如果系统处在开发模式,许多配置都是为开发而定,在该模式下,不需要配置服务器也能运行网站,因为Django本身就提供了简单的Web服务器功能。而如果正式部署,即转换为“生产模式”后就需要对部分配置进行修改。
在开发模式中,Django会自动检测到修改的代码并重新加载,不需要每次修改代码后重新启动Web服务器。但是在新增加文件之后,需要重新启动Django服务器。
项目和应用的创建:
项目的创建:django-admin startproject 项目名;
应用的创建:django-admin startapp 应用名。应用创建了之后就要在settings.py中的ISTALLED_APPS里进行声明。
用Django编写blog
设计数据库和表结构是做网站的基础,因为Python和Django能够直接完成这些操作,所以可以不需要设置先。
创建应用后,利用Django开发网站系统要写在./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)
author = models.ForeignKey(User, related_name="blog_posts", on_delete=models.CASCADE) #比书上增加了个on_delete,
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
class Meta:
ordering = ("-publish",) //规定了BlogArticles的实例对象的显示顺序,即按照publish字段值的倒序显示
def __str__(self):
return self.title
在/mysite/manage.py位置执行python manage.py makemigrations
便会在blog/migrations目录中创建了一个BlogArticles模型。以上创建了一个能够建立数据库表的文件,然后就执行
python manage.py migrate
如此就创建了数据库。
发布博客文章
python manage.py createsuperuser
执行上面命令后就可以自己创建一个超级管理员。
用浏览器输入 http://地址/admin/ 便可以进入界面。但此时只有Django默认的Groups和Users的功能。然后下一步为该用户配置发布blog的功能。
进入./blog/admin.py
from django.contrib import admin
from .models import BlogArticles //将BlogArticles类引入当前环境
admin.site.register(BlogArticles, BlogArticlesAdmin) //将该类注册到admin中
为了使得显示更加丰富可以继续在./blog/admin.py中写入。
class BlogArticlesAdmin(admin.ModelAdmin):
list_display = ("title", "author", "publish")
list_filter = ("publish", "author")
search_fields = ('title', "body")
raw_id_fields = ("author",)
date_hierarchy = "publish"
ordering = ['publish', 'author']