Django框架介绍及Django框架的后台管理

一.Django框架介绍

1.什么是框架

软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品;框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系;通常情况下我们依据框架来实现更为复杂的业务程序开发;二个字,框架就是程序的骨架。

2.Python 中常见的框架有哪些?

大包大揽Django 被官方称之为完美主义者的Web框架。力求精简 web.py 和Tornado。新生代微框架 Flask 和Bottle

3.Django 框架介绍

Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。由经验丰富的开发人员构建,它负责解决Web开发的许多困难,因此您可以专注于编写应用程序,而无需重新创建轮子。免费的和开源的。被官方称之为完美主义者的Web框架。

4.Django 框架的特点

速度快,安全,可拓展性能好。

5.Django框架的安装及建立过程

在豆瓣上下载Django框架,在pycharm的终端输入下面代码
pip3 install django==3.0 -i https://pypi.douban.com/simple

Django框架介绍及Django框架的后台管理_第1张图片

Django框架介绍及Django框架的后台管理_第2张图片

二.Django快速人门:后台管理

   通过简单示例,使用Django 完成基本流程的开发,学习Django 的主要的知识点,, 本次入门以图书管理系统为示例 , 实现图书管理的基本功能。

第一步:项目的创建与运行

(1)第一次使用Django ,那么你必须要照顾一些初始设置。也就是说,您需要自动生成一些建立Django项目的代码。在pycharm的终端输入下面代码

django-admin startproject BookManage

Django框架介绍及Django框架的后台管理_第3张图片

manage.py :一个命令行工具,可以使你用多种方式对Django 项目进行交互
内层的目录:项目的真正的Python包
__init__.py :一个空文件,它告诉Python这个目录应该被看做一个Python包
settings.py :项目的配置
urls.py :项目的URL声明
wsgi.py :项目与WSGI 兼容的Web服务器入口

(2)应用的创建和使用

1)Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此可以专注于编写代码而不是创建目录。在一个项目中可以创建一到多个应用,每个应用进行一种业务处理,创建应用的命令:


```python
python3 manage.py startapp bookApp
2)编写第一个视图函数

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200730105447989.png)

3)路由规则要在bookApp 目录中创建一个URLconf ,创建一个名为urls.py


```python
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
    path('',views.index, name='index'),
]

Django框架介绍及Django框架的后台管理_第4张图片

根据配置文件BookManage/settings 可知路由查找的主文件是BookManage/urls.py , 因此在该文件添加一条url 规则:
Django框架介绍及Django框架的后台管理_第5张图片

效果

python3 manage.py runserver

Django框架介绍及Django框架的后台管理_第6张图片

(3)项目的数据库模型

1)Django 支持的数据库包括: sqlite 、mysql 等主流数据库 Django 默认使用SQLite 数据库

sqlite的操作使用 :在命令行做一个数据库的迁移

[root@linux Django2]# python3 manage.py migrate

Django框架介绍及Django框架的后台管理_第7张图片

python3 manage.py createsuperuser 创建用户
然后通过 python3 manage.py runserver 启动服务器

Django框架介绍及Django框架的后台管理_第8张图片

2)连接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': '323315',
'HOST': 'localhost',
'PORT': '3306',
}
}

3) python3 manage.py migrate 数据库迁移 还会有有提示 要安装mysqlclient
4). python3 manage.py createsuperuser
5). python3 manage.py runserve

Django框架介绍及Django框架的后台管理_第9张图片

(3 )创建数据库模型

Django框架介绍及Django框架的后台管理_第10张图片

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 '' % (self.title)
 
    # 自定义对应的表名,默认表名:bookApp_book
    class Meta:
        db_table = "books"
 
 
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 "" % (self.name)
    # 自定义对应的表名,默认表名:bookApp_book
    class Meta:
        db_table = "heros"

(4). 生成数据库表

# BookManage/settings.py
# Application definition
INSTALLED_APPS = [
# .......此处省略
'django.contrib.staticfiles',
# 新添加的app
'bookApp',
]

生成迁移文件:根据模型类生成sql 语句 python manage.py makemigrations

执行迁移:执行sql 语句生成数据表 python manage.py migrate

数据库中查看数据库表是否创建成功? show database
(5)数据库模型基本操作

现在进入交互式的Python shell,并使用Django 提供的免费API

python manage.py shell
引入需要的包:
from bookApp.models import Hero, Book
查询所有图书信息:
Book.objects.all()
新建图书信息:
from datetime import datetime
book = Book(title="射雕英雄传", pub_date=datetime(year=1990,month=1,day=10))
book.save()
查找图书信息:
book = Book.objects.get(pk=1)
book.id
book.title
book.pub_date
修改图书信息:
book.title = "天龙八部"
book.save()
删除图书信息:
book.delete()

你可能感兴趣的:(python)