第二单元知识点

1.创建django项目

1.首先Windows加r打开小黑框 输入cmd 然后输入命令:django-admin startproject 项目名

2.讲创建好的django项目拉到python打开 然后创建子应用

命令:python manage.py startapp 子应用名

3. 运行项目

命令:python manage.py runserver

4.配置项目

在与文件同名的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.时区

5.安装数据库

在与项目同名的init文件中,添加以下代码

import pymysql
pymysql.install_as_MySQLdb()

6.编写模型类(生成表,操作数据)

在子应用的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

7.迁移(通过模型类,生成数据库中的表)

生成迁移文件命令: python manage.py makemigrations

执行迁移命令: python manage.py migrate

8.使用管理员页面添加测试数据

运行项目

创建超级用户:python manage.py createsuperuser

在子应用的admin.py文件中注册表:(注册以后才能进行管理)

from django.contrib import admin
from myapp.models import Games
# Register your models here.
admin.site.register(Games)

登录管理员用户,添加测试数据

9.编写视图代码

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})

10.编写模板页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>模板页面</h3>
    <p>
        游戏数据:
        {{ games }}
    </p>
    <p>
        循环渲染数据: <br>
        {% for i in games %}
            {{ i.id }} {{ i.name }} {{ i.kind }} {{ i.age }} <br>
        {% endfor %}
    </p>
    <table border="1" width="500">
        <tr>
            <th>编号</th>
            <th>游戏</th>
            <th>种类</th>
            <th>年龄</th>
        </tr>
        {% for game in games %}
        <tr>
            <td>{{ game.id }}</td>
            <td>{{ game.name }}</td>
            <td>{{ game.kind }}</td>
            <td>{{ game.age }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

报错总结:

状态码:
如果是3开头的话就是成功或者重定向。
如果是4开头的话是客户端出现问题了。
如果是5开头的话是服务器出现问题

心得:

在今天之前我一直以为配置模板路径里的’templates’是写在"BASE_DIR"小括号里面或者外面意思都一样,但是我发现老师都是写在里面的 我出于好奇问了一下 然后我才知道 原来意思不一样 但是效果出来了 老师还是跟我说 虽然效果出来了 但是还是写在里面比较好 毕竟写在里面跟外面俩意思不一样的。 如果不是问了这一下 我可能会一直写在小括号外面 所以如果有什么不理解或者不懂的 一定要问老师 不然你就会一直错下去 可能你自己都不知道。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值