创建一个项目
django-admin startproject mysite
运行开发服务器
python manage.py runserver
创建一个应用程序
python manage.py startapp myapp
首先创建数据库
点击右键,创建数据库。名字为mytest
修改settings配置文件
1、修改模板目录位置
'DIRS': [os.path.join(BASE_DIR,'template')],#添加模板目录
2、修改数据库文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mytest',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
}
}
3、允许所有用户访问
ALLOWED_HOSTS = ['*']#允许的主机名,可以将允许访问的主机添加在这个列表里面。
4、把当前应用加进去
model 模型
每个模型都是django.db.models.Model的python子类,,模型中的每个属性都表示数据库中的一个字段,django提供一套自动生成用于数据库访问的API,极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳。
模型主要负责业务对象和数据库关系映射,ORM,是对象-关系-映射的简称,主要任务是:
根据对象类型生成表结构,将对象、列表的操作, 转换成sql语句,将sql查询到的结果转换为对象,列表。
安装mysqlclient
由于django框架中使用mysql数据库需要加载mysql模块,也就是需要安装mysqlclient
pip install mysqlclient
在model.py中定义model类
from django.db import models
# Create your models here.
from django.db import models
from datetime import datetime
class Users(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField(default=20)
phone = models.CharField(max_length=16)
addtime = models.DateTimeField(default=datetime.now)
定义了name,age,phone,addtime这几个属性。
生成迁移文件
python manage.py makemigrations
执行迁移
python manage.py migrate
会生成这么多表格
开始使用model
1、定义一个路由,在myapp的urls.py中
bash
urlpatterns = [
path('', views.index, name='index'),
]
2、在mysite的主目录的urls.py中定义
from django.contrib import admin
from django.urls import path,include
from myapp import views
urlpatterns = [
#path('admin/', admin.site.urls),
path('',include('myapp.urls')),
#path('', views.index, name='index'),
# path('abc',views.add,name='add'),
]
3、在myapp的view里面定义
from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Users
# Create your views here.添加操作
def index(request):
#增加操作
#ob=Users() #实例化一个新的对象
#ob.name="六三"
#ob.age= 30
#ob.phone='155956389'
#ob.save()#保存
#删除操作
#mod=Users.objects
#user=mod.get(id=3)
#print(user.name)
#user.delete()
#修改操作
#ob=Users.objects.get(id=1)
#print(ob.name)
#ob.name="小刘"
#ob.age="27"
#ob.save()
#查询操作
mod=Users.objects
#ulist=mod.all()#获取所有数据
#ulist=mod.filter(name="小刘")#过滤数据,得到想要的数据
#ulist=mod.filter(age__gte=20)#年龄大于等于20
#ulist=mod.filter(age__lte=20)#年龄小于等于20
ulist=mod.order_by("age")[:3]#按照年龄排序
for u in ulist:
print(u.id,u.name,u.age,u.addtime)
#return HttpResponse("Hello, world. You're at the myapp index.")
return HttpResponse("首页<br/> <a href='/users'>用户信息管理</a>")