文章目录
Django 基础
Django
Django 是python的一个三方库,也是一个 web 框架(产品级,MTV模型),用于搭建web后端。
创建工程
django-admin startproject myweb
创建应用
python.exe .\manage.py startapp helloapp
运行工程
python.exe .\manage.py runserver
创建一个 web 框架工程
django-admin startproject myweb
框架目录结构
D:.
└─myweb --外层目录
│ manage.py --django工程交互命令工具
│
└─myweb --工程目录
settings.py --部署和配置的配置文件
urls.py --里面存放了一张表,URL路由声明文件
wsgi.py --基于WSGI 的web服务器配置文件
__init__.py --定义包的空文件
关于 WSGI web服务网关接口
https://www.python.org/dev/peps/pep-3333/
调试运行web框架
python.exe .\manage.py runserver
创建一个具体的应用
python.exe .\manage.py startapp helloapp
url 路由
views 通常写处理http请求的代码
编辑 views.py 文件
from django.http import HttpResponse
# Create your views here.
def hello(request):
return HttpResponse("hello django")
修改 路由 文件,添加路由信息
from django.contrib import admin
from django.urls import path
from helloapp.views import hello
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', hello),
]
路由子表
项目下的是主路由表,而应用下的一般是开发者创建的是次路由表,主路由表代表当前项目的路由,次路由表一般是当前项目的路由。
假设有一个连接
除了全部写在主路由表中以外,我们可以分开项目跟应用之间的路由表关系,让站点结构更清晰。
hello 可以写在主路由表中,index可以写在次路由表中
http://127.0.0.1:8000/hello/index/
主路由表
修改主路由表
引入 include
下面的 path('hello/', include('helloapp.urls')),
表示凡是以hello 这个路径访问的,就使用 次路由表中的路由信息
次路由表
在应用文件下新增一个路由文件
urls.py
写上这个路由表中的相关信息,访问 index 由 newfun 这个函数去处理
from django.urls import path
from helloapp.views import newfun,newfun2,newfun3
urlpatterns = [
path('index/', newfun),
path('index2/',newfun2),
path('index3/',newfun3),
]
Django操作 sqlite 数据库
sqlite 没有 独立的数据库服务进程,数据操作被做成库直接供应用程序调用。 Django中可以直接使用,无须先搭建数据服务。
项目在创建的时会创建一个 db.sqlite3
文件,这是个空文件,需要我们自行创建相关库表
python manage.py migrate
通过数据库工具连接
ORM(object relational mapping) 概念
在django 中 ,数据库操作基本是通过 Model 类型的对象进行的,它不使用sql语句,而是使用类方法处理。
定义 数据库表
数据库表的定义,一般放 应用的 models.py 里面
关于字段类型可以参考官方文档:
https://docs.djangoproject.com/en/2.0/ref/models/fields/#model-field-types
models.py
编写字段
from django.db import models
# Create your models here.
from django.db import models
from django.contrib import admin
# Create your models here.
class Customer(models.Model):
name = models.CharField(max_length=200)
phone = models.CharField(max_length=200)
address = models.CharField(max_length=200)
admin.site.register(Customer) # 添加到 django admin 管理
在项目的配置文件中添加配置,表示我们有这个么个应用
settings.py
然后执行
python.exe .\manage.py makemigrations common
生成应用下 migrations\0001_initial.py 文件
python.exe .\manage.py migrate
写入数据库
在django下的每一个表都需要有一个主键,如果没有配置,django会自动生成一个为 id 的主键
如果修改已经生成的表文件,需要重新运行 makemigrations,及导入数据库 migrate
Django Admin 管理数据
通过 createsuperuser 创建用户
python.exe .\manage.py createsuperuser
通过django 默认的 admin页面登录
如果没有在在创建表的时候有引入 admin 配置管理
admin.site.register(Customer)
需要在应用表中的 admin.py 配置管理
from django.contrib import admin
from .models import Customer
admin.site.register(Customer)