# django-admin startproject 项目名称
django-admin startproject mysite
进入mysite目录,工程目录结构默认如图
与项目同名的目录,此处为mysite,包含项目的配置文件
# python manage.py runserver ip:端口
python manage.py runserver
浏览器访问 http://127.0.0.1:8000/,运行结果如图所示
python manage.py startapp blog
blog目录结构如图所示
现在打开blog目录下的models.py文件,这是定义blog数据结构的地方。
from django.db import models
# Create your models here.
class BlogPost(models.Model):
# 博客标题
title=models.CharField(max_length=150)
# 博客正文
body=models.TextField()
# 博客创建时间
timestamp=models.DateTimeField()
创建BlogPost博客类,继承django.db.models.Model父类,定义3个变量:title(博客标题)、body(博客正文)、timestamp(博客创建时间)
python manage.py makemigrations
python manage.py migrate
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
python manage.py createsuperuser
python manage.py runserver
http://127.0.0.1:8000/admin
from django.contrib import admin
from blog.models import BlogPost
admin.site.register(BlogPost)
自定义管理页面之前
打开mysite/admin.py文件,自定义类,继承自admin.ModelAdmin类
from django.contrib import admin
from blog.models import BlogPost
class BlogPostAdmin(admin.ModelAdmin):
# pk:索引
# 属性list_display表示要显示哪些属性
list_display = ['pk','title','body','timestamp']
admin.site.register(BlogPost,BlogPostAdmin)
自定义管理界面之后
从django的角度来看,一个页面具有3个典型的组件
在blog项目中创建templates文件夹目录(mysite/blog/templates/)在目录中创建模板文件archive.html,代码如下
Title
{% for post in posts %}
{{ post.title }}
{{ post.timestamp }}
{{ post.body }}
{% endfor %}
设置模板路径,打开mysite/settings.py文件,修改设置
打开mysite/blog/views.py文件
from django.shortcuts import render
from blog.models import BlogPost
def archive(request):
posts=BlogPost.objects.all()
return render(request, 'archive.html', {'posts': posts})
posts=BlogPost.objects.all() :获取数据库里面所有的BlogPost对象
return render(request, 'archive.html', {'posts': posts}) :渲染模板,数据是一个字典型的对象(键值对)
在mysite/urls.py文件中添加blog的URL
from django.contrib import admin
from django.urls import path
from django.conf.urls import include,url
urlpatterns = [
url(r'^blog/',include('blog.urls')),
path('admin/', admin.site.urls),
]
在mysite/blog/目录下创建urls.py文件
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^archive$',views.archive),
]
再次启动服务python manage.py runserver,访问http://127.0.0.1:8000/blog/archive
页面如图所示
这样一个简单的博客就搭建完成了