目录
1.Django的介绍
1) Django 框架介绍
Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。
由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序,而
无需重新创建轮子。
免费的和开源的。
被官方称之为完美主义者的Web框架。
官方网址:https://www.djangoproject.com/
2)Django框架特点
2.Django的安装
pip3 install django==3 -i https://pypi.douban.com/simple
3.Django快速入门:后台管理
1)项目的创建与运行
创建完成后目录分支如下:
2)应用的创建和使用
(1) 创建第一个应用程序
Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此你可以专注于编写代码而不
是创建目录。在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
编写第一个视图函数打开文件 bookApp/views.py 并放入以下Python代码:
python3 manage.py startapp bookApp
(2) 编写第一个视图函数
(3) 路由规则
在
bookApp
目录中
创建一个名为
urls.py
。如下所示:
根据配置文件
BookManage/settings
可知路由查找的主文件是
BookManage/urls.py
, 因此在该文件添加一条 url
规则:
(4)效果展示
启动服务器 python3 manage.py runserver
3)项目的数据库模型
(1) 数据库的创建
第一种方法:通过sqlite实现:
python manage.py makemigrations 生成迁移文件
python3 manage.py migrate 迁移数据
然后将sqlite3 添加到Django中
将网址中的语言设置为中文:
单击db.sqlite3 可以查看数据库信息 默认的Django已经将数据库的一些设置好了
通过网页的方式显示数据库 在命令行输入 python3 manage.py createsuperuser 创建用户
然后通过 python3 manage.py runserver 启动服务器
此时可通过访问http://127.0.0.1:8000/admin/登录创建的用户
第二种方法:通过mysql实现
在BookManage/settings.py 文件中,通过DATABASES项进行数据库设置:注释之前的sqlite数据库;
# 注释之前的sqlite数据库;
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# }
# 添加新的Mysql数据库连接;
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'BookManage',
'USER': 'root',
'PASSWORD': 'westos',
'HOST': 'localhost',
'PORT': '3306',
}
}
1.环境搭建
python3 manage.py migrate 数据库迁移 还会有有提示 要安装mysqlclient
python manage.py createsuperuser
python manage.py runserver
然后网页登录即可
(2) 创建数据库模型
编辑bookapp/models.py
from django.contrib import admin
from django.db import models
# Create your models here.
# 一个Book类对应一个数据库表
# 一个类属性对应一个数据库表的列属性
class Book(models.Model):
# # 默认情况下,会自动添加id这一列作为主键。
# title是字符串类型的, 并且最大的长度为20;
title = models.CharField(max_length=20)
pub_date = models.DateField()
# 字符串的友好展示, 在交互式环境测试的时候生效
def __repr__(self):
return '<Book: %s>' % (self.title)
# 字符串友好展示,在后台管理的时候生效
def __str__(self):
return self.title
# 自定义对应的表名,默认表名:bookApp_book
class Meta:
db_table = "books"
# 后台管理显示(单数)
verbose_name = "图书管理"
# 后台管理显示(复数)
verbose_name_plural = "图书管理"
class Hero(models.Model):
# 默认情况下,会自动添加id这一列作为主键。
name = models.CharField(max_length=20)
gender = models.BooleanField(default=True)
content = models.CharField(max_length=200)
# 一对多关系, 外键写在多的一端(Book:Hero=1:n)
# models.CASCADE叫级联删除,当书籍被删除后,关联的任务也会被删除
book = models.ForeignKey('Book', on_delete=models.CASCADE)
def __repr__(self):
return "<Hero %s>" % (self.name)
def __str__(self):
return self.name
def sex(self):
if self.gender:
return "男"
else:
return '女'
# 自定义对应的表名,默认表名:bookApp_book
class Meta:
db_table = "heros"
# 后台管理显示(单数)
verbose_name = "人物管理"
# 后台管理显示(复数)
verbose_name_plural = "人物管理"
from django.db import models
(3)生成数据库表
编辑BookManage/settings.py
# BookManage/settings.py
# Application definition
INSTALLED_APPS = [
# .......此处省略
'django.contrib.staticfiles',
# 新添加的app
'bookApp',
]
生成迁移文件:根据模型类生成sql 语句 python manage.py makemigrations
执行迁移:执行sql 语句生成数据表 python manage.py migrate
数据库中查看数据库表是否创建成功? show database