Django模板

本文章也可以是一个独立的实验,所以本文章的目录结构仍是以一个独立的实验进行撰写
本实验所需工具及版本:
Django 2.2.3
Python 3.6.3
Windows 10
VSCode
Navicat Premium 12

1 Django开发环境搭建

以管理员的身份运行在这里插入图片描述
(后文以VSCode代替),单击左上角菜单栏的终端,如所示,在其下拉列表选择【新终端】。
在这里插入图片描述
在VSCode的终端输入:

Set-ExecutionPolicy RemoteSigned

再输入E: (E大小写都可以)

E:>mkdir venv #创建一个用于创建虚拟环境的目录,目录名自取

E:>cd venv #进入到该目录

1.1 搭建虚拟环境

E:\venv>pip install virtualenv  #安装virtualenv

会显示如下结果:
在这里插入图片描述
创建一个名为“tv”的虚拟环境,虚拟环境名可自取

E:\venv>virtualenv tv

在这里插入图片描述
查看当前目录

E:\venv>dir

进入到虚拟环境所在的目录下

E:\venv>cd  tv 

1.2 启动虚拟环境

进入虚拟环境

E:\venv\ tv > Scripts\activate

安装指定的Django的2.2.3版本

(tv) E:\venv\tv>pip install django==2.2.3

在这里插入图片描述

1.3 新建项目

创建一个名为test1的项目

(tv) E:\venv\tv>django-admin startproject test1 

左上角【文件】→打开文件夹→选择在步骤1.1中创建的E:venv\tv\test1文件夹(项目目录),结果如下:
在这里插入图片描述

1.4 创建应用

进入项目目录test1下,即与manage.py文件同级

(tv) E:\venv\tv>cd test1

创建应用,当前项目目录(test1)下新增了一个users的目录,users就是刚创建的应用名

(tv) E:\venv\tv\test1>python manage.py startapp users

users应用创建完成需要提前加入INSTALLED_APPS中,操作如下:
在VSCode中打开test1下的settings.py中的如下处插入红色文字的内容:
在这里插入图片描述
可复制如下代码段粘贴至settings.py对应位置中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users'
]

插入后按Ctrl+S保存修改内容

2 模板的变量

2.1 创建模板

在与项目主目录同级的目录下创建文件夹”templates”
在这里插入图片描述
在templates里创建文件index.html,其内容如下:
在这里插入图片描述
可复制如下代码段粘贴至index.html中:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title> 
</head>
<boby>
    <h1>{{hello}}:{{name}}</h1>
</boby>
</html>

2.1.1 在settings.py下配置模板路径

在test1下的settings.py中找到TEMPLATES对应如下紫色底纹内容所在的位置,添加下图中红色方框框选内容:
在这里插入图片描述
可复制如下代码段粘贴至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',
            ],
        },
    },
]

2.2 新建视图

在users/views.py中添加如下图所示内容
在这里插入图片描述
可复制如下代码段粘贴至views.py对应位置中:

def index(request):
    hello="Hello World"
    name="张三"
    return render(request,'index.html',{"hello":hello,"name":name})

2.3 配置路由

在项目主目录test1中的url.py中添加如图 2 5所示内容
在这里插入图片描述
可复制如下代码段粘贴至url.py对应位置中:

from django.contrib import admin
from django.urls import path
from users.views import index 

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',index),
]

2.4 启动项目

python manage.py runserver

在浏览器中访问http://127.0.0.1:8000/index即可显示

3 模板的标签

3.1 创建视图

在users/views.py中添加如下图所示内容(因为有的行内容太长了,内容结果以复制代码为准)
在这里插入图片描述

def index1(request):
    userlist=[{"name":"张三","age":25,"addtime":"2021-4-6"},{"name":"李四","age":17,"addtime":"2017-5-21"},{"name":"王五","age":23,"addtime":"2016-8-13"}]
    return render(request,'index1.html',{"ulist":userlist})

3.2 配置路由

在test1/url.py中添加如下图所示内容
在这里插入图片描述
可复制如下代码段粘贴至url.py对应位置中:

from django.contrib import admin
from django.urls import path
from users.views import index 
from users.views import index1 

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',index),
    path('index1/',index1),
]

3.3 创建模板

在templates中创建index1.html,其内容如下图所示
在这里插入图片描述
可复制如下代码段粘贴至index1.py对应位置中:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title> 
</head>
<boby>
    <ul>
        {% for item in ulist %}
        <li>{{item.name}}{{item.age}}{{item.addtime}}</li>
        {% endfor %}
    </ul>
</boby>
</html>

3.4 启动项目

python manage.py runserver

在浏览器中访问http://127.0.0.1:8000/index1即可显示
在这里插入图片描述

3 创建应用

创建应用,当前项目目录(test1)下新增了一个books的目录,books就是刚创建的应用名

(tv) E:\venv\tv\test1>python manage.py startapp books

books应用创建完成需要提前加入INSTALLED_APPS中,操作如下:
在VSCode中打开test1下的settings.py中的如下图处插入红色框选的内容:
在这里插入图片描述
可复制如下代码段粘贴至settings.py对应位置中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'books',
]

插入后按Ctrl+S保存修改内容

4 定义模型

在这里插入图片描述
可复制如下代码段粘贴至settings.py对应位置中:

class BookClass(models.Model):
    name=models.CharField(max_length=20,verbose_name=u"分类名称")
    def __str__(self):
        return self.name
class BookInfo(models.Model):
    bookclass=models.ForeignKey(BookClass,on_delete=models.CASCADE,verbose_name=u"图书分类",null=True,blank=True)
    name=models.CharField(max_length=50,verbose_name=u"图书名称")
    price=models.IntegerField(verbose_name=u"价格",default=20)
    autor=models.CharField(max_length=20,verbose_name=u"作者")
    def __str__(self):
        return self.name

5 在数据库中生成表

5.1 生成迁移文件

(tv) E:\venv\tv\test1>python manage.py makemigrations

在这里插入图片描述

5.2 执行迁移

相当于执行sql语句创建数据表

(tv) E:\venv\tv\test1>python manage.py migrate

在这里插入图片描述

5.3 编辑数据表

(1) 第一种方法:通过后台admin编辑
(2) 第二种通过数据库编辑工具编辑
打开在这里插入图片描述
单击左上角【文件】选项卡→新建连接→SQLite…
在这里插入图片描述
执行下图操作
在这里插入图片描述
数据库文件位置如下图
在这里插入图片描述
可以在下图中看到模型类BookClass与BookInfo迁移后创建的对应的数据表
在这里插入图片描述

注意:
BookClass与BookInfo两个数据表的第一个字段”id”,不需要您输入,因为这一字段的数据类型是自增长的整型,即便不指定,也将会自动添加一个主键字段到模型中。数据表内输入内容可以不同,但对应数据类型要相同,例如books_bookinfo的price字段,不一定要写12、60、26等,但是一定要写整型数字,这里写中文就不行

在数据表books_bookclass中对应位置输入如下图所示内容
在这里插入图片描述
在数据表books_bookinfo中对应位置输入如下图所示内容
在这里插入图片描述
如果本篇文章对您有所帮助,希望您能关注支持我,您的关注支持着我能一直发布Python Web相关实验文章,或许那些文章也对您有所帮助。如果对本片文章有什么问题或补充,欢迎在下方评论留言,我会时常来看的,并对我所能回答的进行回答。谢谢您的支持!

上一章:《Django视图》传送门:
https://blog.csdn.net/weixin_51211535/article/details/116523002
下一章:《admin后台管理系统》传送门》:
https://blog.csdn.net/weixin_51211535/article/details/117666949

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值