# django-admin startproject 项目名称 django-admin startproject mysite
进入mysite目录,工程目录结构默认如图html
与项目同名的目录,此处为mysite,包含项目的配置文件 python
# python manage.py runserver ip:端口 python manage.py runserver
浏览器访问 http://127.0.0.1:8000/,运行结果如图所示sql
python manage.py startapp blog
blog目录结构如图所示shell
如今打开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(博客建立时间)django
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个典型的组件app
在blog项目中建立templates文件夹目录(mysite/blog/templates/)在目录中建立模板文件archive.html,代码以下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %} </body> </html>
设置模板路径,打开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
页面如图所示
这样一个简单的博客就搭建完成了