Django,发音为dʒæŋɡəʊ,诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian开发。
Django框架遵循MVC思想,但是有自己的说法,即MVT。
以用户注册为例,一个典型的MVC过程如下:
其中,M即Model模型,用于与数据库进行交互;
V即View视图,用于产生HTML页面;
C即Controller控制器,用于接收请求并进行处理。
在Django中,MVT与MVC有一定的区别,意义为:
M即Model模型,用于与数据库进行交互;
V即View视图,用于接收请求并进行处理;
C变为T,即Template模板,处理HTML视图。
Django中文文档https://docs.djangoproject.com/zh-hans/2.2/
django-admin startproject [项目名称]
,例如执行django-admin startproject mysite
即可创建项目mysite。运行Django项目也有2种方式:
通过python manage.py runserver 8000(默认)即可运行项目
,如果想要修改端口号,可以在运行的时候可以指定端口号,例如执行python manage.py runserver 9000就可以通过9000
端口访问。项目主目录中:
python manage.py [子命令]
执行相关指令,可以执行python manage.py help
查看帮助。STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
然后在创建一个static文件到主目录中。此时需要创建app,通过命令python manage.py startapp app
名称即可创建app,如执行python manage.py startapp app01
即创建名为app01的app,创建目录的包含文件如下:
用于在创建项目之后,为了建立应用和项目之间的联系,还需要对应用进行注册,即修改settings.py中的INSTALLED_APPS配置项(一般默认自动创建).
使用Django来操作MySQL时,底层还是通过Python来操作的,因此要想用Django来操作MySQL,pymysql和SQLAlchemy是在可以在python中使用原生的sql语句进行交互 (增删改查一般用于较为复杂ORM也实现不了的操作) 的。
O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。
django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
如果想使用mysql连接需要配置如下:
6. 使用MySQL数据库首先需要安装驱动程序
pip install pymysql
import pymysql
# 目前mysqlclient目前只支持py3.4所以要指定版本
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()
作用是让Django的ORM能以mysqldb的方式来调用PyMySQL
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'root', # 数据库用户名
'PASSWORD': 'xxx', # 数据库用户密码
'NAME': 'xxx' # 数据库名字
}
}
drop database if exists `xxx`;
在Django中定义视图函数时,要注意两点:
(1)参数中必须要传request
参数;
(2)返回值要包裹在HttpResponseBase
或其子类中。
在urls.py中定义视图如下:
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/',views.index),
]
在创建的app01文件夹下的views.py中定义视图如下:
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
return HttpResponse('元旦快乐,祝2021,牛转乾坤!!')