# Django
# 项目和应用
django 遵循MVC思想,通过django-admin startproject 项目名
创建项目,会在当前目录下生成一个manage.py文件,作为程序的命令行工具入口
然后生成 项目名
的文件夹,里面有项目的的相关配置:
- manage.py 一个让你用各种方式管理 Django 项目的命令行工具。
- init.py 一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包
- settings.py 是项目的整体配置文件。
- urls.py 是项目的URL配置文件。
- wsgi.py :作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。
- asgi.py :作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口
这只是项目的配置,还需要有应用(类似java中的模块),执行python manage.py startapp 应用名称
创建应用
- init.py 是一个空文件,表示当前目录news可以当作一个python包使用。
- tests.py 文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来做。
- models.py 文件跟数据库操作相关。
- views.py 文件跟接收浏览器请求,进行处理,返回页面相关。
- admin.py 文件跟网站的后台管理相关。
- migrations 模型类同步到数据库生成的迁移文件
然后在项目的settings.py
中注册应用
INSTALLED_APPS = (应用名)
启动项目
python manage.py runserver
# 模型类
django不像我们开发springboot应用,需要先创建表,在django中,直接创建在 models.py 添加 entity 对象,对象继承django.db的models.Model
即可。
from django.db import models
class NewsInfo(models.Model):
title = models.CharField(max_length=20)
content = models.TextField()
b_date = models.DateField()
都支持哪些字段,参考官网
然后需要将model对象同步到数据库中,这个需要两步
- 生成迁移文件:根据模型类生成创建表的迁移文件。
python manage.py makemigrations
迁移文件会存储在migrations
- 执行迁移:根据第一步生成的迁移文件在数据库中创建表。
python manage.py migrate
WARNING
生成的数据表的默认名称为: 应用名字_类名
数据操作:
- 获取所有:类.objects.all()
- 新建对象:实例.save()
- 查询指定参数:类.objects.get(id=1)
- 修改:对象改了属性值以后再保存一下
- 删除:对象.delete()
# 后台管理
自带了一个后台, 能管理模型
- 先创建用户
python manage.py createsuperuser
- 启动服务
python manage.py runserver 7777
- 注册模型类
from django.contrib import admin from .models import newsInfo admin.site.register(newsInfo)
# 视图
使用视图两步操作
1. 定义视图函数
2. 配置URLconf
定义视图 视图是一个Python函数,定义在views.py中。
视图的必须有一个参数,一般叫request,视图必须返回HttpResponse对象,HttpResponse中的参数内容会显示在浏览器的页面上。
打开news/views.py文件,定义视图index如下
from django.http import HttpResponse def index(request): return HttpResponse('这个是index页面')
配置url
- 查找视图的过程 请求者在浏览器地址栏中输入url,请求到网站后,获取url信息,然后与编写好的URLconf逐条匹配,如果匹配成功则调用对应的视图函数,如果所有的URLconf都没有匹配成功,则返回404错误。
- 配置视图
- 在应用中定义URLconf
from django.conf.urls import url from news import views urlpatterns = [ url(r'^index', views.index), ]
- 包含到项目的URLconf中
from django.conf.urls import include, path from django.contrib import admin urlpatterns = [ path(r'^admin/', include(admin.site.urls)), path(r'^',include('news.urls')), # 应用名.urls.py,省略后缀了。 ]
- 在应用中定义URLconf
# 模板
类似springboot项目里面resources文件夹下的templates
需要在settings.py
文件里面设置TEMPLATES的DIRS值
视图响应模块
from django.shortcuts import render
def index(request):
context={'title':'新闻列表','list':range(10)}
return render(request,'news/index.html',context)
DRF框架 →