1.django项目流程:
1.创建django项目: django-admin startproject 项目名
创建子应用: python manage.py startapp 子应用名
运行项目: python manage.py runserver
2.配置项目
setting.py
INSTALLED_APPS = [ # 2.子应用 常见错误:不带逗号
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 注册子应用
]
TEMPLATES = [ # 4. 模板配置 返回页面
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 配置模板页面的路径,记得新建templates文件夹
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'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 = { # 5. 数据库
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': 'localhost', # 主机
'PORT': 3306, # 端口
'USER': 'root', # 用户名
'PASSWORD': 'root', # 密码,每个人的不一样
'NAME': 'p4_db1', # 使用的数据块, 创建一个干净的数据块
}
}
LANGUAGE_CODE = 'zh-Hans' # 6.语言
TIME_ZONE = 'Asia/Shanghai' # 6.时区
3.安装数据
在与项目同名的init文件中,添加以下代码
import pymysql
pymysql.install_as_MySQLdb()
4.编写模型类(生成表,操作数据)
在子应用的models.py文件中编写代码
class Games(models.Model):
# name字段 CharField字符串 max_length最大长度 verbose_name后台的名字
name = models.CharField(max_length=20, verbose_name="游戏名")
kind = models.CharField(max_length=20, verbose_name="类型")
# IntegerField整形
age = models.IntegerField(default=16, verbose_name="年龄向")
# 表配置
class Meta:
db_table = "games" # 表名
verbose_name = "游戏表" # 后台的表名
verbose_name_plural = verbose_name # 复数
# 魔法方法
def __str__(self):
return self.name
5.迁移(通过模型类,生成数据库中的表)
生成迁移文件: python manage.py makemigrations
执行迁移: python manage.py migrate
6.使用管理员页面添加测试数据:
运行项目
创建超级用户:python manage.py createsuperuser
在子应用的admin.py文件中注册表:(注册以后才能进行管理)
from django.contrib import admin
from myapp.models import Games
# Register your models here.
admin.site.register(Games)
登录管理员用户,添加测试数据
7.编写视图代码
from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Games
# 逻辑代码 视图
# Create your views here.
# 函数视图
def myView(request):
# 逻辑代码
# 获取数据库Games表中的所有数据
games_data = Games.objects.all()
# 1.基础响应
# return HttpResponse("Hello world")
# 2.返回模板页面
# render参数 request请求 模板页面 context传递给页面的数据(字典)
return render(request, 'index.html', {"games": games_data})
编写模板页面
模板页面
游戏数据: {{ games }}
循环渲染数据:
{% for i in games %} {{ i.id }} {{ i.name }} {{ i.kind }} {{ i.age }}
{% endfor %}
编号 | 游戏 | 种类 | 年龄 |
---|---|---|---|
{{ game.id }} | {{ game.name }} | {{ game.kind }} | {{ game.age }} |
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(“myview/”, views.myView),
]