前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django流程_菜鸟裹裹收费标准

Django流程_菜鸟裹裹收费标准

作者头像
全栈程序员站长
发布2022-10-05 09:09:26
1.3K0
发布2022-10-05 09:09:26
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Django 教程

一、Django 安装

1、Django 版本对应的 Python 版本:

在这里插入图片描述
在这里插入图片描述

2、Django下载地址:

https://www.djangoproject.com/download/

3、安装(无需下载)

打开cmd,输入:pip install Django==1.11.4,然后回车

在这里插入图片描述
在这里插入图片描述

4、验证安装

cmd进入python

获取版本信息

import django django.get_version()

在这里插入图片描述
在这里插入图片描述

二、创建第一个项目

1、在合适位置创建一个目录

2、打开DOS进入到上一步创建的目录下

CD C:\Users\Administrator\PycharmProjects\bilibili_qianfeng\bilibili_20200404\01-wj

3、输入:django-admin startproject project

查看目录结构:tree . /F

在这里插入图片描述
在这里插入图片描述

4、目录层级说明

manage.py

一个命令行工具,可以让你以各种方式与该Django项目进行交互

init.py

一个空文件,告诉Python该项目是一个Python包

settings.py

项目的配置文件

urls.py

项目的URL申明,一份由Django驱动的网站“目录”

wsgi.py

一个WSGI兼容的Web服务器的入口,以便运行你的项目

在这里插入图片描述
在这里插入图片描述

三、基本操作

1、设计表机构

a、班级表结构

表名:grade
字段:

班级名称:gname 成立时间:gdate 女生总数:ggirlnum 男生总数:gboynum 是否删除:isDelete

b、学生表结构

表名:students
字段:

学生姓名:sname 学生性别:sgender 学生年龄:sage 学生简介:scontend 所属班级:sgrade 是否删除:isDelete

2、配置数据库

注意:Django默认使用Sqlit数据库

在这里插入图片描述
在这里插入图片描述

在setting.py文件中,通过DATABASE选项进行数据库配置

a、配置MySQL

python3.x安装的是PyMySQL
在__init__.py文件中写入两行代码
代码语言:javascript
复制
import pymysql
pymysql.install_as_MySQLdb()

b、格式:

在这里插入图片描述
在这里插入图片描述

3、创建应用

在一个项目中可以创建多个应用,每个应用进行一种业务处理

a、打开cmd进入01-wj目录下的project的目录

b、执行:python manage.py startapp myAPP

c、myApp目录说明

admin.py

站点配置

models.py

模型

views.py

视图

4、激活应用

在setting.py文件中,讲myApp应用加入到INSTALLED-APPS选项中

在这里插入图片描述
在这里插入图片描述

5、定义模型

概述:有一个数据表,就应该对应一个模型 在models.py中定义模型

引入:from django.db import models

模型类要继承models.Model类

代码语言:javascript
复制
from django.db import models
# Create your models here.
class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sage = models.IntegerField()
scontend = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
# 关联外键
sgrade = models.ForeignKey("Grades")

说明:不需要定义主键,在生成时自动添加,并且值为自动增加

6、在数据库中生成数据表

a、生成迁移文件

执行:python manage.py makemigrations

在这里插入图片描述
在这里插入图片描述

在migrations目录下生成一个迁移文件,此时数据库中还没有生成数据表

在这里插入图片描述
在这里插入图片描述

b、执行迁移

执行:python manage,py migrate

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

7、测试数据操作

a、进入到python shell

b、执行:python manage.py shell

在这里插入图片描述
在这里插入图片描述

c、引入包:

from myAPP.models import Grades,Students from django.utils import timezone from datetime import *

d、查询所有数据

格式:类名.objects.all() Grades.objects.all()

在这里插入图片描述
在这里插入图片描述

e、添加数据

本质:创建一个模型类的对象实例 grade1=Grades() grade1.gname=‘python04’ grade1.gdate=datetime(year=2020,month=4,day=4) grade1.ggirlnum=3 grade1.gboynum=70 grade1.save()

f、查询某个对象

格式:类名.objects.get(pk=1) Grades.objects.get(pk=1)

g、修改数据

模型对象.属性 = 新值 grade1.gboynum = 60 grade1.save()

在这里插入图片描述
在这里插入图片描述

h、删除数据

物理删除(真实删除!)

模型对象.delete()

逻辑删除(isDelete = True)

I、关联对象

创建一个学生

stu = Students() stu.sname = “小明” stu.sgender = False stu.sage = 20 stu.scontend = “我叫小明” stu.sgrade = grade1 stu.save()

获得关联对象的集合

需求:获取python04班级的所有学生 格式:对象名.关联的对象名_set.all() grade1.students_set.all()

创建一个学生属于‘’python04‘’班

stu1 = grade1.students_set.create(sname=u’曾志伟’,sgender=True,scontend=u’我叫曾志伟’,sage=45)

不用save()直接就创建成功

8、启动服务器

a、格式:

python manage.py runserver ip:port ip可以不写,不写的话代表本机ip port端口号默认是8000 python manage.py runserver

在这里插入图片描述
在这里插入图片描述

b、说明:

这是一个纯python写的轻量级web服务器,仅仅在开发测试中使用

9、Admin站点管理

a、概述:

内容发布

负责添加、删除、修改内容

公共访问

b、配置Admin应用

在settings.py文件中的INSTALLED_APPS中添加“django.contrib.admin”,默认是已经添加好的

在这里插入图片描述
在这里插入图片描述

c、创建管理员用户

执行:python manage.py createsuperuse 依次输入用户名、邮箱、密码 创建后在网址输入账号密码:http://127.0.0.1:8000/admin/

d、汉化

修改settings.py文件

在这里插入图片描述
在这里插入图片描述

10、管理数据表

a、修改admin.py文件

代码语言:javascript
复制
from .models import Grades,Students
# 注册
admin.site.register(Grades)
admin.site.register(Students)

b、自定义管理页面

代码语言:javascript
复制
from .models import Grades,Students
# 注册
class GradesAdmin(admin.ModelAdmin):
# 列表页属性
list_display = ['pk','gname','gdate','ggirlnum','gboynum','isDelete']
list_filter = ['gname']
search_fields = ['gname']
list_per_page = 5
# 添加、修改页属性
# fields = ['ggirlnum','gboynum','gname','gdate','isDelete']
# fieldsets = [
# ("num",{"fields":['ggirlnum','gboynum']})
# ("base",{"fields":['gname','gdate','isDelete']})
# ]
admin.site.register(Grades, GradesAdmin)
属性说明:

列表页属性

list_display

显示字段

list_filter

过滤字段

search_fields

搜索字段

list_per_page

分页

添加修改属性

fields

属性先后顺序

fieldsets

给属性分组 注意:fields与fieldsets不能同时使用

关联对象

需求:在创建一个班级时可以直接添加几个学生

代码语言:javascript
复制
class StudentsInfo(admin.TabularInline):# Stackedlnline
model = Students
extra = 2
class GradesAdmin(admin.ModelAdmin):
inlines = [StudentsInfo]
在这里插入图片描述
在这里插入图片描述
布尔值显示问题
代码语言:javascript
复制
class StudentsAdmin(admin.ModelAdmin):
def gender(self):
if self.sgender is True:
return "男"
else:
return "女"
# 设置页面列的名称
gender.short_description = "性别"
list_display = ['pk','sname','sage',gender,'scontend','sgrade','isDelete']
list_per_page = 2
admin.site.register(Students,StudentsAdmin)
执行动作位置
代码语言:javascript
复制
class StudentsAdmin(admin.ModelAdmin):
def gender(self):
if self.sgender is True:
return "男"
else:
return "女"
# 设置页面列的名称
gender.short_description = "性别"
list_display = ['pk','sname','sage',gender,'scontend','sgrade','isDelete']
list_per_page = 10
# 执行动作的位置
actions_on_top = False
actions_on_bottom = True
admin.site.register(Students,StudentsAdmin)

c、使用装饰器完成注册

代码语言:javascript
复制
@admin.register(Students)
class StudentsAdmin(admin.ModelAdmin):
def gender(self):
if self.sgender is True:
return "男"
else:
return "女"
# 设置页面列的名称
gender.short_description = "性别"
list_display = ['pk','sname','sage',gender,'scontend','sgrade','isDelete']
list_per_page = 10
# 执行动作的位置
actions_on_top = False
actions_on_bottom = True
# admin.site.register(Students,StudentsAdmin)

11、视图的基本使用

a、概述:

在django中,视图对web请求进行回应 视图就是一个python函数,在views.py文件中定义

b、定义视图

代码语言:javascript
复制
from django.http import HttpResponse
def index(request):
return HttpResponse("WJ is a good man")

c、配置url

修改project目录下的url.py文件
代码语言:javascript
复制
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^',include('myAPP.urls'))
]
在myAPP应用目录下创建一个urls.py文件
代码语言:javascript
复制
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index)
]

12、模板的基本使用

a、概述:

模板是HTML页面,可以根据视图中传递过来的数据进行填充

b、创建模板目录

创建templas目录,再目录下创建对应项目的模板目录(project/templates/myAPP)

c、配置模板路径

修改settings.py文件下的TEMPLATES

代码语言:javascript
复制
TEMPLATES = [
{ 

'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,

d、定义grades.html和students.html两个模板

模板语法
{ {输出值,可以是变量,也可以是对象属性}}
{%执行代码段%}

e、http://127.0.0.1:8000/grades

写grades.html模板
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>班级信息</title>
</head>
<body>
<h1>班级信息列表</h1>
<ul>
{ 
%for grade in grades%}
<li>
<a href="#">{ 
{ 
grade.gname}}</a>>
</li>
{ 
%endfor%}
</ul>
</body>
</html>
定义视图
代码语言:javascript
复制
from .models import Grades
def grades(request):
# 去模型models里取数据
gradesList = Grades.objects.all()
# 讲数据传递给模板,模板再渲染页面,将渲染好的页面返回给浏览器
return render(request,'myAPP/grades.html',{ 
"grades":gradesList})
配置URL
代码语言:javascript
复制
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
url(r'^(\d+)\$',views.detail),
url(r'^grades/$',views.grades)
]

f、http://127.0.0.1:8000/students

写students.html模板
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生信息</title>
</head>
<body>
<h1>学生信息列表</h1>>
<ul>
{ 
%for student in students%}
<li>
{ 
{ 
student.sname}}--{ 
{ 
student.scontend}}
</li>>
{ 
%endfor%}
</ul>>
</body>
</html>
定义视图
代码语言:javascript
复制
from .models import Students
def students(request):
studentsList = Students.objects.all()
return render(request,'myAPP/students.html',{ 
"students":studentsList})
配置URL
代码语言:javascript
复制
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
url(r'^(\d+)\$',views.detail),
url(r'^grades/$',views.grades),
url(r'^students/$',views.students)
]

g、点击班级,显示对应班级的所有学生

写students.html模板
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生信息</title>
</head>
<body>
<h1>学生信息列表</h1>
<ul>
{ 
%for student in students%}
<li>
{ 
{ 
student.sname}}--{ 
{ 
student.scontend}}--{ 
{ 
student.sgrade}}
</li>
{ 
%endfor%}
</ul>
</body>
</html>
定义视图
代码语言:javascript
复制
def gradesStudents(requst,num):
# 获得对应的班级对象
grade = Grades.objects.get(pk = num)
# 获得班级下的所有学生对象列表
studentsList = grade.students_set.all()
return render(requst,'myAPP/students.html',{ 
"students":studentsList})
配置url
代码语言:javascript
复制
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
url(r'^(\d+)\$',views.detail),
url(r'^grades/$',views.grades),
url(r'^students/$',views.students),
url(r'^grades/(\d+)$',views.gradesStudents)
]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月8日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django 教程
  • 一、Django 安装
    • 1、Django 版本对应的 Python 版本:
      • 2、Django下载地址:
        • 3、安装(无需下载)
          • 4、验证安装
            • cmd进入python
            • 获取版本信息
        • 二、创建第一个项目
          • 1、在合适位置创建一个目录
            • 2、打开DOS进入到上一步创建的目录下
              • 3、输入:django-admin startproject project
                • 4、目录层级说明
                  • manage.py
                  • init.py
                  • settings.py
                  • urls.py
                  • wsgi.py
              • 三、基本操作
                • 1、设计表机构
                  • a、班级表结构
                  • b、学生表结构
                • 2、配置数据库
                  • a、配置MySQL
                  • b、格式:
                • 3、创建应用
                  • a、打开cmd进入01-wj目录下的project的目录
                  • b、执行:python manage.py startapp myAPP
                  • c、myApp目录说明
                • 4、激活应用
                  • 5、定义模型
                    • 引入:from django.db import models
                    • 模型类要继承models.Model类
                  • 6、在数据库中生成数据表
                    • a、生成迁移文件
                    • b、执行迁移
                  • 7、测试数据操作
                    • a、进入到python shell
                    • b、执行:python manage.py shell
                    • c、引入包:
                    • d、查询所有数据
                    • e、添加数据
                    • f、查询某个对象
                    • g、修改数据
                    • h、删除数据
                    • I、关联对象
                  • 8、启动服务器
                    • a、格式:
                    • b、说明:
                  • 9、Admin站点管理
                    • a、概述:
                    • b、配置Admin应用
                    • c、创建管理员用户
                    • d、汉化
                  • 10、管理数据表
                    • a、修改admin.py文件
                    • b、自定义管理页面
                    • c、使用装饰器完成注册
                  • 11、视图的基本使用
                    • a、概述:
                    • b、定义视图
                    • c、配置url
                  • 12、模板的基本使用
                    • a、概述:
                    • b、创建模板目录
                    • c、配置模板路径
                    • d、定义grades.html和students.html两个模板
                    • e、http://127.0.0.1:8000/grades
                    • f、http://127.0.0.1:8000/students
                    • g、点击班级,显示对应班级的所有学生
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档