MVT解析
M:model模块 用来和数据库交互
V:view 接收请求,处理请求,返回数据
T:template 模板 编写html、css、js代码的模板语言
虚拟环境
项目所需要的第三方软件环境相互隔离
创建虚拟环境:mkvirtualenv django_py3 -p python3
安装版本号:pip install django=1.11.11
建议:不安装最新版本
切换虚拟环境:workon django_py3
所有的虚拟环境查看:workon
删除虚拟环境:rmvirtualenv django_py2
退出虚拟环境:deactivate
创建Django项目
django-admin 项目名字
Django项目名下文件解析
1.项目名字
2.项目的同名文件夹,内部包含的是项目的配置文件
3.__init__.py文件
4.settings.py 项目的整体配置文件
5.urls.py 项目的URL配置文件
6.wsgi.py wsgi是项目与服务器的入口
7.manage.py 是项目的运行路口
运行服务器
运行:python manage.py runserver
如果后面不加端口则是默认8000,如果指定端口,则使用的是指定端口
创建模块
python manage.py 模块名
1.模块名文件
2.migrations文件:存放数据库迁移的文件
3.admin.py 后台管理站点的配置
4.apps.py 用来配置当前模块的相关信息
5.models.py 用来存放当前模块的数据库模型
6.tests.py
7.views.py 当前模块的业务逻辑
定义表与字段
创建类
class 表名(models.Model):
字段名=model.CharField(max_length=50)
#CharField字符串 max_length=字符串长度
继承于Model
迁移数据库表
1.先生成迁移文件
1.先切换到当前Django环境下
workon django_py3
2.生成迁移文件
python manage.py makemigration
2.执行迁移文件
python manage.py migrate
迁移成功并执行完成后,才会在数据库产生表
设置数据库
1.在settings.py中设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#这个参数是设置数据库用的
'NAME': 'Djangouser',#使用数据库的名字
'USER': 'root',#数据库用户名
'PASSWORD': '',#填写数据库密码
'HOST': '127.0.0.1',#数据库主机的地址
'POST': '3306',#一般使用,一般不做修改
}
}
2.添加驱动
import pymysql
pymysql.install_as_MySQLdb()
视图
视图的作用:创建业务逻辑,完成路径——视图的匹配,返回给对应的路径的数据或者网页
创建一个视图函数,视图函数至少需要一个参数来接收Django传递过来的参数
request是一个请求对象,每个视图函数都必须要有一个参数来承接
配置URL
第一种方法:
from django.conf.urls import url,include
from django.contrib import admin
from user import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^user/',include('user.urls')),
]
第二种方法:(分模块再集中)
(1)在项目所在的同名文件夹的urls里面配置include()将各个模块的URL加载
(2)在各个模块的URL里面进行配置URL-----VIEWS
(3)项目同名的urls值完成路由的分发匹配过程
真正匹配路径在各个模块的URL下面
配置文件夹的查找路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'项目的同名文件夹名,内部包含的是项目的配置文件')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
配置中文APP应用
from django.apps import AppConfig
class UserConfig(AppConfig):
name = 'user'
verbose_name='用户管理'
查找所有的数据
1.进行导包
查询所有的数据
A=表名,objects.all()
计数语句
B=表名,objects.count()
查询一条语句
C=表名,objects.get()
查询符合条件的多条数据
D=表名,objects.filter()
大于gt
大于等于gte
小于lt
小于等于lte
get()和filter()区别
get()获取的是指定条件符合数据,只有一条
filter()既可以查询一条语句,也可以查询多条语句,但是查询的结果放在一个列表里面、如果查询不到任何满足条件的数据,则返回的是一个空列表
reder HttpResponse JsonResponse区别
reder:返回网页的数据
HttpResponse:返回字符串
JsonResponse:字典
元类
class Meta:
db_table='表名'
verbose_name='地址信息管理'#进行重命名
verbose_name_plural = verbose_name#去除末尾s