【无标题】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

1.了解HTTP协议与动态、静态网站的理念
2.独立进行框架项目的创建部署
3.熟悉整个项目框架的目录结构
模版配置

首先要告诉Django,你准备把接下来的html页面存放在哪里,那么需要打开settings.py文件,找到TEMPLATES选项,修改其中的DIRS属性,在这里添加我们的html文件夹位置

# project.settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        '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',
            ],
        },
    },
]

创建模版

有了这个文件夹的配置之后,接下来在项目根目录下创建与配置同名的文件夹template/

并在其中书写一个简单的html,并命名为index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hi</title>
</head>
<body>
<h1>真不错</h1>
<p>
    今天这个天气是<strong>晴天</strong>
</p>
</body>
</html>
视图渲染

有了html,目录也配置好了,那么紧接着就是让视图去返回这个文件,那么现在我们要引入一个新的方法叫做render,这个方法专门用来返回一个html页面,并且在未来,我们还会了解到这个方法的更高级用处,就是传递上下文模版变量

修改app下的视图方法,返回这个页面,页面路径不需要绝对路径,使用*template/*下的相对路径即可

# app.views.py
from django.shortcuts import render


def index(request):
    return render(request, 'index.html')
2.1.2 模版变量渲染
{{ var }}

提示:以下是本篇文章正文内容,下面案例可供参考

2.1.3 模版语句循环、分支
for 标签
{% for var in sequence %}
    {{ var }}
{% endfor %}
if 标签

在模版中,可以通过{% if %}标签语法来进行模板变量的值判断;

{% if test_list %}
    列表不为空
{% elif test_dict %}
    列表为空,字典不为空
{% else %}
    列表字典均为空
{% endif %}
2.2.2 静态资源路径配置
  • settings中配置静态文件目录路径,添加如下内容
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
# STATICFILES_DIRS 该配置项用来告诉 django 在查找静态资源时,应该访问哪个目录

在项目中创建***static/***目录,***static/目录下创建专门保存图片的img/***目录,在里面存一张图片

project/
    project/
    app/
    template/
    static/
          img/
             1.jpg

有了图片,接下来在模板页面中去引入并使用它,打开index.html进行修改

<!DOCTYPE html>
<html lang="en">
    {% load staticfiles %}
<head>
    <meta charset="UTF-8">
    <title>hi</title>
</head>
<body>
    <h1>{{ message }}</h1>
    <img src='{% static "img/1.jpg" %}' alt="图片">
</body>
</html>

2.3 ORM映射

通过ORM映射在models.py文件中创建模型类

#myapp/models.py
from django.db import models
# Create your models here.
class Weather(models.Model):
    weather = models.CharField(max_length=100,verbose_name="天气")
    class Meta: # 定义元类
        verbose_name_plural = "天气"  # 可以控制模型类的属性 在后台管理站点中看到的效果
        # 设置当前表名的一个可读的性更好的名字
    def __str__(self):  # 控制后台管理站点中添加对象的名字
        return self.weather # 将天气2个字返回 效果都是在后台管理中站点看到的

在这里我们使用到了 django 的ORM映射关系用来创建数据库表,继承自models.Model类,
一个类用来表示一张表,类中的一个属性代表一个字段

代码中定义了一个类型为CharField,长度为100的字段,用来存储天气

models.CharField(max_length=100,verbose_name="天气")
  • 当某个子应用APP涉及到了数据库的使用时,要记得在settings文件中进行配置
#myproject/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]
2.3.3 生成迁移文件
python manage.py makemigrations # 创建数据库迁移文件
2.3.4 执行迁移
python manage.py migrate # 根据数据库迁移文件生成对应 SQL 语句并执行
2.4.2 admin控制台超级用户
  • 创建admin超级用户,使用manage.py命令行工具执行如下命令并按照提示创建即可
python manage.py createsuperuser

执行完之后需要在跟目录下 安装

import pymysql
pymysql.install_as_MySQLdb()

  • app下的admin.py文件中进行模型类的注册
#myapp/admin.py
from django.contrib import admin
from myapp import models
admin.site.register(models.Weather)
#使用 register 函数接收模型类作为参数即可完成注册

如果运行 到之前的项目
要先 关闭自己之前的项目 才可以 不用重新迁移
如果出现

 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

就是没有在跟目录下安装

2.5 ORM视图操作

2.5.1 子应用视图使用ORM
2.5.2 如何通过ORM操作模型类

这里使用all方法,代表获取某表中的所有数据

# myapp/views.py
from django.shortcuts import render
from myapp import models


def index(request):
    weathers = models.Weather.objects.all()
    content = {
        "weathers": weathers,
    }
    return render(request, 'index.html', content)

#错误
每次写的单词都会有错别字 要认真 写
还有 经常会少写一个点啊什么的
还要多练 首先要把

错误

在这里插入图片描述在这里插入图片描述
解决方法:
在输入的 方法中少了 .\
让马家伟帮我看出来的

错误
在这里插入图片描述
是我在该文件夹中 多创建了一个子应用
导致我在使用 注册的过程中 把一半的功能用错 导致了错误的发生

解决办法 :
注册使用统一一个子应用 删除其中一个 把子应用统一
是老师让我打开共屏 帮我解决了




django-admin startproject pro 项目名
python manage.py runserver   启动
python manage.py startapp appname   子应用创建
配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST':'localhost',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'123456',
        'NAME':'department',
    }
}

五、本单元知识总结

1.理解什么是静态资源
2.熟练掌握静态资源的有关配置
3.掌握迁移的命令使用
4.掌握admin控制台的使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值