django 实例演示

本文介绍如何使用Django框架创建一个简单的个人博客网站,包括项目的创建、应用的配置、数据库模型的设计、视图函数的编写及URL配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建一个 project
django-admin startproject mysite
 
2.在 mysite 下面创建一个 app
python manage.py startapp blog
注:Django 1.8.x 以上的,还有一个 migrations 文件夹。Django 1.9.x 还会在 Django 1.8 的基础上多出一个 apps.py 文件。但是这些都与本文无关。
 
3.初始化 admin 后台数据库
python manage.py migrate
 
4.设置 admin 应用,添加 blog 应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]
 
5.启动 admin 容器
python manage.py runserver 9999 &
 
6.访问 后台应用
http://127.0.0.1:9999/admin
此时用户名密码需要进行设置
 
7. 设计 Model 即设计数据库表
在 mysite/blog/models.py
 
from django.db import models
from django.contrib import admin

# Create your models here.class BlogsPost(models.Model):
    title = models.CharField(max_length = 150)
    body = models.TextField()
    timestamp = models.DateTimeField()

admin.site.register(BlogsPost)

8.再次初始化数据库
python manage.py makemigrations blog
python manage.py migrate

9.再次启动容器,访问 Admin 后台,创建文章

10.设置 admin 的 BlogsPost 界面
打开 mysite/blog/models.py
from django.db import models
from django.contrib import admin

# Create your models here.class BlogsPost(models.Model):
    title = models.CharField(max_length = 150)
    body = models.TextField()
    timestamp = models.DateTimeField()

class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title','timestamp')
    
admin.site.register(BlogsPost,BlogPostAdmin)

创建BlogPostAdmin类,继承admin.ModelAdmin父类,以列表的形式显示BlogPost的标题和时间


11.创建 blog 公共部分

从Django的角度看,一个页面具有三个典型的组件:

一个模板(template):模板负责把传递进来的信息显示出来。

一个视图(view):视图负责从数据库获取需要显示的信息。

一个URL模式:它负责把收到的请求和你的试图函数匹配,有时候也会向视图传递一些参数。

1) 创建模板

创建 mysite/blog/templates/  在目录下创建 index.html

{% for post in blog_list %}
    <h2>{{ post.title }}</h2>
   <p>{{ post.timestamp }}</p>
   <p>{{ post.body }}</p>
{% endfor%}

2)创建视图函数
打开 mysite/blog/views.py

#coding=utf-8from django.shortcuts import render
from blog.models import BlogsPost
from django.shortcuts import render_to_response

# Create your views here.def index(request):
    blog_list = BlogsPost.objects.all()
    return render_to_response('index.html',{'blog_list':blog_list})

blog_list = BlogPost.objects.all() :获取数据库里面所拥有BlogPost对象

render_to_response()返回一个页面(index.html),顺带把数据库中查询出来的所有博客内容(blog_list)也一并返回

3)创建 blog 的 URL 模式
在 mysite/urls.py 文件里添加 blog 的 url:
Django 1.7 以下:
from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
	url(r'^blog/', blog.views.index),
]
Django 1.8 以上:先导入,再使用
from django.conf.urls import url
from django.contrib import admin
from blog import views as blog_views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
	url(r'^blog/', blog_views.index),
]

4)再次启动服务 python manage.py runserver 9999 & 
访问 http://127.0.0.1:9999/blog/

5)添加样式
在 mysite/blog/templates 目录下创建 base.html模板
<html> <style type="text/css"> body{color:#efd;background:#453;padding:0 5em;margin:0} h1{padding:2em 1em;background:#675} h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em} p{margin:1em 0} </style> <body> <h1>blog 样式演示</h1> {% block content %} {% endblock %} </body>
</html>

修改 index.html 模板,引用 base.html 模板和 content 块

{% extends "base.html" %}
  {% block content %}
      {% for post in blog_list %}
      <h2>{{  post.title }}</h2>
      <p>{{ post.timestamp | date:"1,F jS"}}</p>
      <p>{{ post.body }}</p>
      {% endfor %}
  {% endblock %}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值