Django 基础
表单设置 | 数据库关联 | 静态文件配置
路由设置 | 视图函数编写 | sqlite 数据转到 excel
Django 简介
Django 是 python 语言搭建的后端框架,至今被广泛应用
本文将从基础入手,介绍如何搭建基础的 django 后台服务,完成最简单的表单场景
开始
首先需要安装 python 与 django 环境,这一步较为简单,可以参考菜鸟教程:
https://www.runoob.com/django/django-install.html
如果遇到问题,大家 Google 自行解决
另外,本项目使用 PyCharm 编辑器,下载与安装也需要大家自行完成,同样推荐大家参考菜鸟教程:
https://www.runoob.com/w3cnote/pycharm-windows-install.html
新建项目
搭建好环境并且下载好编辑器后,我们就开始新建项目了
对于 windows 系统, cmd 命令行进入到要搭建项目的位置,运行命令:django-admin startproject test
此处的 test 是项目名,请自行更改
然后 cd test
进入到项目目录,运行 python manage.py runserver 0.0.0.0:80
即运行项目
在浏览器地址输入 127.0.0.1
连接项目,查看是否成功
基础命令
Django 中可以通过 python manage.py startapp testapp
创建一个 app,每个 app 对应一些服务,要善于将后端服务逻辑通过 app 分隔开来,不然到后面服务越写越多,架构会十分复杂
开发的第一步,我们通常会设计基础的数据库,
当更新数据表后,需要运行地命令 python manage.py makemigrations
观看 app 中的表变化,然后通过 python manage.py migrate
才真正地更新数据库
此外,可以通过 python manage.py createsuperuser
创建一个超级管理员账户,管理员账户可以对所有数据进行管理,这个可自行 Google 解决
编写代码
settings
用前面安装好的编辑器 pycharm 打开项目,可以看到右上角有开始以及调试按钮,通过它们就可以开启项目了,不需要再在 cmd 开启
然后,我们先看到 settings.py 文件,在这个文件里是对于此项目的一些配置
找到对应位置,添加如下,此处是设置跨域访问的允许域名
1 | ALLOWED_HOSTS = ['125.217.248.90','127.0.0.1', |
由于本项目属于前后端不分离的 django 项目,此步尤为重要,若跨域设置失败,项目便无法正常运行
app 配置
当我们新建过 app 服务时,需要添加到如下位置,使得 app 服务可以运行
1 | INSTALLED_APPS = [ |
templates
然后,根据 django 框架对于静态 html 文件处理的模式,按如下配置使得服务可以返回静态页面文件
1 | TEMPLATES = [ |
注意:按照规范,静态页面文件需要放到项目目录下的 templates 文件夹中
静态文件
除了需要返回页面文件外,我们的服务还需要返回 css 文件,js 文件等静态文件,配置如下:
1 | STATIC_URL = '/static/' |
同样的,按照规范,我们需要把对应的静态文件放到项目目录下的 static 文件夹中
到此位置,基础设置完毕了,然后便需要编写 url,model,views 等
url 配置
在项目的总的 url.py
文件中,进行路由的初始分流,可以看到,原本已经集成好了管理员 url,我们只需添加自已的服务 url
1 | from django.contrib import admin |
然后我们在 info app 的 url.py 文件中添加二级路由,将添加 team 数据与获取 team 数据的服务进行分流
1 | from django.urls import path |
templates url
同样的,我们还需要添加获取页面文件的路由配置,为了使得结构清晰,我们在 info 目录下新建一个views.py
文件
写入如下代码与总的url.py
文件中的路由对应:
1 | from django.shortcuts import render |
models
接着,在 models.py 中编写数据模型,这个可参考官方文档对各种数据的定义内容,此处不作展开,可看项目源码
注意:写完 models 后要按上文方式查看改变并且更新数据库,否则无效
服务逻辑
最后,我们新建一个 team.py 文件,编写具体的服务,如下:
1 | from django.http import JsonResponse |
以上是获取 post 的队伍信息存入数据库以及将队伍信息打印到网页中的服务函数
前端联调
此文不对前端做详细介绍,但指出其中提交数据的关键 api
1 | /*队伍信息处理以及提交后台*/ |
查看效果
运行项目,打开浏览器输入地址http://127.0.0.1:8000
,可以看到如下页面
正确填写信息后提交,可以看到返回的信息
接着,可以在数据库中查看,或者打开 http://127.0.0.1:8000/info/teams
查看数据
sqlite 转出 excel 数据
为了方便查看数据,添加一个可以将 sqlite 数据导出到 excel 的 demo 文件transf.py
在项目目录下, cmd 命令行下执行py transf.py
便可以导出数据,代码如下:
1 | import sqlite3 |
结语
以上给出 django 的基础内容,如有问题,可在页面左侧获取笔者 wechat 或 qq 联系
最后给出以上项目的 github 地址:
github