Django 是一个由 Python 写成的开放源代码的 Web 应用框架,许多成功的网站和APP都基于Django。Django是一个强大的Python Web框架,它遵循MTV(Model-Template-View)的软件设计模式,即模型(Model)、模板(Template)和视图(View)。MTV模式概念部分见知识点|MTV模式(Model-template-view)。
安装Django
在已安装Python 3 和 pip的情况下,通过pip安装Django
pip install django
创建项目
用 Django 自带的脚手架工具 django-admin 创建项目,命名为django_bulletin:
django-admin startproject django_bulletin
项目骨架
DJANGO_BULLETIN
├── django_bulletin // 项目全局文件目录
│ ├── __init__.py // 初始化模块
│ ├── asgi.py // 全局配置
│ ├── settings.py // 全局配置
│ ├── urls.py // 全局路由
│ └── wsgi.py // WSGI服务接口(
└── manage.py // 项目管理脚本
进入项目
用cd命令进入项目
cd django_bulletin
运行开发服务器
python manage.py runserver
复制“Starting development sever at”后的网址,开发服务器网址一般是固定的
在浏览器中打开,进入欢迎界面
保留运行中的Django 开发服务器。
检查项目骨架
到这一步项目骨架已比较清晰,可以和创建项目时的骨架作对比感受变化
DJANGO_BULLETIN
├── django_bulletin // 项目全局文件目录
│ ├── __pycache__ // 缓存文件夹
│ ├── __init__.py // 初始化模块
│ ├── asgi.py // 全局配置
│ ├── settings.py // 全局配置
│ ├── urls.py // 全局路由
│ └── wsgi.py // WSGI服务接口(
├── db.sqlite3 // 默认数据库文件名
└── manage.py // 项目管理脚本
Django应用
Django 是高度模块化的框架,其应用Application(以下简称App)在 django_news/settings.py 的
INSTALLED_APPS
列表中定义,包括内置App、第三方App、自定义App等。
创建自定义应用
保留运行中的Django 开发服务器,新建一个终端窗口,用cd命令进入项目
cd django_bulletin
创建一个自定义App,命名为bulletin
python manage.py startapp bulletin
bulletin // bulletin应用目录
├── migrations // 数据库迁移文件目录
├── __init__.py // 初始化模块
├── admin.py // 后台管理配置
├── apps.py // 应用配置
├── models.py // 数据模型
├── tests.py // 单元测试
└── views.py // 视图
bulletin应用文件夹内的骨架很清晰,各模块功能明确
将应用添加到全局配置
将bulletin应用添加到全局配置INSTALLED_APPS中
创建视图(View)
打开bulletin/views.py
写一个返回"hello world!"的视图函数
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello world!')
将视图接入路由
创建 bulletin/urls.py 文件
写入bulletin应用的路由表
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
接入全局路由表
将bulletin应用的路由表接入全局路由表
打开django_bulletin/urls.py
从
django.urls
引入
django.urls.include
函数
from django.urls import include
在urlpatterns列表中添加路由映射,用
django.urls.include
函数接入bulletin应用路由表。
path("", include("bulletin.urls"))
刷新网址
http://127.0.0.1:8000
因为bulletin应用写入的访问路由是空路由,可以直接看到编写的“Hello world!”
创建模版(Template)搭建前端
创建 bulletin/templates/bulletin/index.html 文件搭建前端
写入Django模版
{% if bulletin_list %}
<ul>
{% for elem in bulletin_list %}
<li>
<h3>{{ elem.title }}</h3>
<p>{{ elem.content }}</p>
</li>
{% endfor %}
</ul>
{% else %}
<p>你来到了没有知识的荒原</p>
{% endif %}
渲染模版
在视图中对写入的模版进行渲染
打开 bulletin/views.py 文件
写入渲染函数
from django.shortcuts import render
def index(request):
context = {
'bulletin_list': [
{
"title": "【Django】从零开始的Web搭建",
"content": "http://t.csdnimg.cn/AMHPU",
},
{
"title": "【Django】从零开始的Web搭建",
"content": "http://t.csdnimg.cn/AMHPU",
},
{
"title": "【Django】从零开始的Web搭建",
"content": "http://t.csdnimg.cn/AMHPU",
},
]
}
return render(request, 'bulletin/index.html', context=context)
刷新网址
http://127.0.0.1:8000
首页内容和写入的内容一致
创建模型(Model)
打开 bulletin/models.py文件
写入Post模型
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
def __str__(self):
return self.title
创建迁移文件
python manage.py makemigrations
迁移数据库
python manage.py migrate
创建查询接口
打开bulletin/views.py
写入视图查询数据库的代码
from .models import Post
def index(request):
context = { 'bulletin_list': Post.objects.all() }
return render(request, 'bulletin/index.html', context=context)
创建超级用户
创建超级用户,即后台管理账户
python manage.py createsuperuser
按要求依次输入用户名、 邮箱、密码
配置后端接口
打开bulletin/admin.py
写入后端接口代码
from django.contrib import admin
from .models import Post
admin.site.register(Post)
访问后端管理页面
localhost:8000/admin
输入超级用户的用户名和密码
从而可以看到创建的应用和模型
管理前端内容
通过后端管理系统可以管理前端内容,包括内置应用、第三方应用,此处自定义的BULLETIN应用下的的Posts子应用、Students子应用等。
例如Posts提供编辑公告功能,在后端管理系统添加公告
可以直接显示在前端
相关内容可以在后端管理系统随时进行管理甚至丰富更多功能
版权归原作者 F_D_Z 所有, 如有侵权,请联系我们删除。