WEB后端服务第11天-Django第一天

本文详细介绍Django框架入门,包括环境搭建、项目与应用创建、数据库连接与ORM操作、Admin站点配置及综合案例分析。适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WEB后端服务第11天

一、 Django入门

1.1 基本概念

1.2 创建环境与app项目

安装依赖包

pip install django==2.0.1 -i https://mirrors.aliyun.com/pypi/simple

【注意】如果Python版本(3.7.4+)很高时,SQLite3版本同样很高,则django版本建议使用django==2.1.5+;因为,admin.site 站点管理时,会报auth_user_old表不存在的错误。

进入"终端" CMD命令, 通过 django-admin 命令创建django项目。

django-admin startproject helloDjango

通过django-admin命令创建app应用

django-admin startapp  mainapp

在一个Django项目中,存在很多的app应用(模块), 创建好的app需要注册到主工程中(settings.py)

1.3 django项目结构

项目结构如下:

helloDjango
		|--- helloDjango   主工程目录
				 		|----  settings.py   # 设置文件, 数据库连接、app注册、中间件及模板配置
				 		|----  urls.py       # 总路由
				 		|----  wsgi.py       # Django实现wsgi的脚本
            |----  __init__.py
		|--- mainapp      应用模块(主)
						|----  __init__.py
						|---- admin.py      # 后台管理配置脚本
						|---- models.py     # 数据模型类声明所在脚本
						|---- views.py      # 声明当前应用的视图处理函数或类
						|---- urls.py       # 自已增加的当前应用模块的子路由
						|---- tests.py      # 当前应用模块的单元测试类
						|---- apps.py       # 声明当前应用的基本信息
		|--- manage.py     WEB应用的启动脚本, 项目工程的入口

1.4 Django请求流程

1. 到urls分发器 (总urls.py -> 子路由)
2. urls分发器根据路由规则(正则)分发到views
3. views去调用Model,交互数据
4. views将数据渲染到模板中
5. 模板呈现给用户

二、 数据库连接与ORM模型

2.1 数据库连接配置

默认是sqlite3数据库, 在使用ORM模型之前,需要先生成迁移文件,再执行迁移命令,在数据库中生成这些模型对应的表。

  • 先生成迁移文件
python manage.py  makemigrations
  • 开始迁移(生成表、 修改表、删除表)
python manage.py migrate

注意: 一旦生成了迁移文件并且迁移成功之后,不要删除迁移文件。

2.2 初步使用ORM模型

在app模块中的models.py 定义一个用户(客户)模型

from django.db import models

class UserEntity(models.Model):
     # 默认情况下会自动创建id主键
     name = models.CharField(max_length=20)
     age = models.IntegerField(default=0)
     phone = models.CharField(max_lengt=11)
     
     class Meta:
     		 # 指定当前模型类映射成哪一个表
     		 db_table = 'app_user'

模型创建完成后,先后执行生成迁移文件和迁移。

2.3 CURD

查询

UserEntity.objects.all()  # 查询所有, list
UserEngtity.objects.get(pk=id)  # 根据主键值查询一个实体对象

增加

u = UserEntity()
u.name = 'disen'
u.age = 20
u.phone = '177'

# 保存模型对象
u.save()

删除

u = UserEntity.objects.get(1)
u.delete()  # 删除

更新

u = UserEntity.objects.get(3)
u.name = '李成'
u.save()

三、Admin的site站点配置

四、 综合案例-水果管理

3.1 模型设计

# Fruit 水果模型类(name, price, source, cate_type_id)
# FruitImage 水果图片模型类(fruit_id, url, width, height, name)
# CateType 水果分类(name, order_num)

# Store 水果商店(name,name,boss_name, phone, address, city, lat, lon)
# StoreDetail 水果商店的详情

3.2 模板的基本使用

循环语句块

{% for item in items %}
	
{% endfor %}

分支循环

{% if 条件表达式 %}

{% endif %}

变量

{{ 变量名 }}

在views.py视图函数中,渲染模板

return render(request, 'fruit/list.html', locals() )

3.3 页面设计

{% block name %}

{% endblock %}
{% extends "base.html" %}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值