本文章只为学习使用,只为学习使用,只为学习使用,不为其它用途。欢迎各路大神给出指点意见🌹🌹🌹
前言
新手必看!零基础也能浅学会Django框架
或许你刚入门Python,或许你从未接触过后端框架,或许你想了解Django框架是如何搭建项目的,或许你想找一个通俗易懂的教程,你来对地方了!就是这篇文章,可以让新手快速上手Django!
一、Django是什么?
(1)Web应用框架 (2)采用MVT模式,M—>model,V—>view,T—>template,在子应用的文件下可以清楚的看到这三层模式
二、搭建一个Django项目
1.准备工作(可省略)
创建一个虚拟环境
python3 -m venv new_venv
进入虚拟环境
cd new_venv
source bin/activate
安装Django
pip install django
2.创建项目
django-admin startproject Shop
pycharm打开项目,工程目录如下:
- 📁Shop
- 📁Shop
- 📃__init__.py
- 📃settings.py
- 📃urls.py
- 📃wsgi.py
- 📃manage.py
- Shop 工程名称
- settings.py 配置项
- urls.py 总路由
Pycharm运行项目,出现如下界面代表成功创建Django工程
3.创建子应用
3.1. 创建子应用
step1:
python manage.py startapp goods_manager
step2:在settings.py注册子应用
INSTALLED_APPS = [
............
'django.contrib.staticfiles',
'goods_manager',
]
step3:建立template文件夹,并在settings.py中配置好
TEMPLATES = [
{
....
'DIRS': [os.path.join(BASE_DIR, 'templates')],
....
},
]
step4:建立static文件夹,并在settings.py中配置好
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
step5:在子应用目录下创建子路由
3.2. 创建模型(model)
models.py:与数据库进行交互 step1: 假设下面这张图是数据库里的一张表,名为food_information,名称、种类等为其属性,根据表结构,在子应用下的models.py编写模型代码
class FoodInfo(models.Model):
name = models.CharField(max_length=20, verbose_name='菜品名称')
variety = models.CharField(max_length=10, verbose_name='种类')
unit = models.CharField(max_length=10, verbose_name='单位')
supplier = models.CharField(max_length=20, verbose_name='供应商')
purchase_date = models.DateField(verbose_name='采购日期')
number = models.FloatField(verbose_name='进货数量')
exp = models.IntegerField(verbose_name='保质期')
status = models.CharField(max_length=10, verbose_name='状态')
location = models.CharField(max_length=20, verbose_name='存放位置')
class Meta:
# 在数据库中 对表进行重新命名
db_table = 'food_information'
def __str__(self): # 标识对象
return self.name
step2: 打开navicat,为该工程建立一个新的数据库 step3: 在setting.py中对数据库进行配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'USERNAME': 'root',
'PASSWORD': '12345678',
'HOST': '',
'PORT': 3306,
'NAME': 'Food_Shop',
}
}
step4:安装数据库引擎
pip install pymysql
step5:在工程__init__.py文件中配置引擎
import pymysql
pymysql.install_as_MySQLdb()
step6:进行数据库迁移 工具—运行manage.py任务—makemigrations—migrate 打开navicat可以看到刚才创建的模型(表)
3.3. 编写视图函数(view)
视图的功能主要是接收请求,返回响应.因此视图函数的形参一定有HttpRequest,函数体也一定会有return xxxResponse
在视图中常用的包: from django.shortcuts import render from django.http import HttpResponse
step1:编写视图函数
def test(request):
return HttpResponse('Hello World!')
step2:配置该视图函数的子路由(子应用文件夹下的urls.py)(3.1 step5 创建好了)
from goods_manager.views import test
from django.urls import path
urlpatterns = [
path('test/', test),
]
step3:配置总路由(总工程目录下的urls.py)
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('goods_manager.urls')),
]
step4:运行项目进行访问 ?
3.4. 获取数据库里的数据
准备工作:在刚才创建好的数据库里添加数据 点击python控制台 from goods_manager.models import FoodInfo FoodInfo.objects.create(name=‘生蚝’, variety=‘河鲜’, unit=‘个’,supplier=‘江门市惠新鲜先生’,purchase_date=‘2022-08-20’, number=60, exp=7, status =‘已送达’, location = ‘五号仓库24号储物架140号’) FoodInfo.objects.create(name=‘金枪鱼’, variety=‘河鲜’, unit=‘条’,supplier=‘江门市惠新鲜先生’,purchase_date=‘2022-08-20’, number=36, exp=7, status =‘已送达’, location = ‘五号仓库20号储物架10号’)
获取数据库数据 step1:编写视图函数 def get_data(request): data = FoodInfo.objects.filter(variety__exact=‘蔬菜’) return HttpResponse(data) step2:配路由 from goods_manager.views import test, get_data from django.urls import path urlpatterns = [ path(‘test/’, test), path(‘get/’, get_data), ] step3:启动访问
? 成功拿到数据库里的数量
|