1.创建项目
django-admin startproject 项目名
2. 创建子应用
进入到django项目里
django-admin startapp 应用名
python manage.py startapp 应用名
使用pycharm打开项目 要打开到项目的根目录下
3.配置项目
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 1.注册子应用
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 2.配置模板页面的路径,需要创建文件
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
DATABASES = { # 3.配置数据库
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': 'localhost', # 主机
'PORT': 3306, # 端口
'USER': 'root', # 用户名
'PASSWORD': 'root', # 密码
'NAME': 'test', # 数据库名,需要创建数据库
}
}
LANGUAGE_CODE = 'zh-Hans' # 4.语言
TIME_ZONE = 'Asia/Shanghai' # 5.时区
4.安装数据库
进入与项目同名的文件夹下的 init.py文件:
import pymysql
pymysql.install_as_MySQLdb()
5.编写模型类
进入子应用的models.py文件编写模型类:
# 部门表:部门名称,部门人数
class Department(models.Model):
# 会自动生成id字段,主键
# CharField字符串类型 IntegerField整形 max_length字符串最大长度 verbose_name后台管理的列名
dep_name = models.CharField(max_length=20, verbose_name='部门名称')
number = models.IntegerField(verbose_name='部门人数')
class Meta:
verbose_name = '部门表' # 后台管理的表名
verbose_name_plural = verbose_name # 复数
db_table = 'department' # 数据库中的表名
def __str__(self):
return self.dep_name # 直接访问对象时输出部门名称
6.迁移
目的:在数据库中生成表
生成迁移文件:python manage.py makemigrations
执行迁移: python manage.py migrate
7.创建超级用户、注册表和添加测试数据
命令:python manage.py createsuperuser
注册表:进入子应用的admin.py文件,添加注册代码
from django.contrib import admin
from myapp.models import Department
# Register your models here.
admin.site.register(Department)
运行项目:python manage.py runserver
进入管理员页面添加测试数据
8.获取数据库中的数据,然后渲染到模板页面上
进入子应用的views.py文件
# 获取数据库中的数据,然后渲染到模板页面上
from django.shortcuts import render
from myapp.models import Department
# Create your views here.
def MyView(request):
data = Department.objects.all() # 获取所有部门信息
return render(request, 'index.html', {'departments':data})
在tempaltes文件夹下创建index.html文件,添加代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>渲染数据</h3>
<table width="500" border="1">
<tr>
<th>编号</th>
<th>部门名称</th>
<th>部门人数</th>
</tr>
{% for department in departments %}
<tr>
<td>{{ department.id }}</td>
<td>{{ department.dep_name }}</td>
<td>{{ department.number }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
9.配置路由
进入与项目同名的文件夹下的urls.py文件,配置路由
from django.contrib import admin
from django.urls import path
from myapp import views # 导入视图
urlpatterns = [
path('admin/', admin.site.urls),
path('myview/', views.MyView), # 配置路由
]