Django项目基本搭建
框架理念
Django遵循MVT框架模式,由模型(Model)、视图(View)、模板(Template)组成,与传统MVC模式不同的是,Django通过视图(V)处理请求,显示工作交给了模板(T)。
环境
Ubuntu
python 3.6
django 2.1
安装Django
pip3 install django==2.1.*
因为Ubuntu中默认安装python 2.7,所以需要使用pip3指定python 3.6进行安装
项目构建流程
1. 搭建django项目
django-admin startproject 项目名称
2. 创建应用
python manage.py startapp 应用名称
- 在web文件夹setting文件中INSTALLED_APPS添加该应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#添加子应用
'应用名称'
]
- 设置中文和时区
#中文
LANGUAGE_CODE = 'zh-Hans'
#上海时区
TIME_ZONE = 'Asia/Shanghai'
3. 重定向路由至应用中的路由
配置web文件夹中的路由文件urls
#配置web文件夹中的路由文件urls.py,除了匹配admin/外,其余匹配重定向到应用中的urls.py
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^', include('应用名称.urls')),
]
应用中新建一个路由文件urls
from django.conf.urls import url
from django.contrib import admin
from . import views
urlpatterns = [
#url(r'^访问地址名称',views.函数名称),
url(r'^hello',views.Hello),
]
4. 创建模板文件
-
模板文件用于存放html页面,在与应用同级目录下创建文件夹templates
-
在setting中配置模板文件路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#修改此处路径
'DIRS': [os.path.join(BASE_DIR,'templates')],
'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',
],
},
},
]
5. 定义视图函数
在应用中的views文件编写视图函数
视图函数中必须带有返回值,返回的方式有很多种
def Hello():
return HttpResponse('Hello world!')
6. 启动服务
在manage同级目录下打开终端,输入下面指令
python manage.py runserver
7. 测试
打开浏览器,在地址栏输入 127.0.0.1:8000/hello
在setting文件中可以通过修改ALLOW_HOSTS,来修改服务监听的ip地址。
8. 数据库配置
模型(Model)负责程序处理数据逻辑的部分,负责数据的存取
- 配置setting文件
DATABASES = {
'default': {
#这里使用的是MySQL
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名称',
#用户名
'USER':'root',
#密码
'PASSWORD':'123456',
#IP
'HOST':'localhost',
#端口号
'POST':'3306',
}
}
- 打开应用中的init文件,添加以下代码
import pymysql
pymysql.install_as_MySQLdb()
9. 定义模型
- 在应用的model文件中自定义模型
# 创建模型类,Hello是模型名
class Hello(models.Model):
#创建字段
#字段名 = models.字段类型()
name = models.CharField(max_length=20)
class Meta:
#指定数据库表名,默认名称为 应用_类名
db_table = 'hello'
def __str__(self):
#定义每个对象返回的信息
return self.name
- 生成迁移文件
python manage.py makemigrations
- 执行迁移
python manage.py migrate
迁移完成后可以进入数据库查看,生成了许多表,其中包括hello表
10. 模型的基本操作
在views中导入模型文件models
from . import models
- 查询
def Hello():
#获取当前模型的所有对象,结果是一个查询集
#data = models.模型名.objects.过滤器
data = models.Hello.objects.all()
#获取一个指定的数据对象
#这里是指定获取id为1的对象
obj = models.Hello.objects.get(id=1)
return HttpResponse('Hello world!')
- 添加
#待存储数据
data = {'name':'zhangsan'}
#模型存储对象,这里要用关键字参数
obj = models.Hello(**data)
#保存操作
obj.save()
- 删除
#获取数据对象后,进行删除操作
obj.delete()
- 修改
obj.name = 'lisi'
obj.save()