2019-06-12
MVC架构
MVC架构模式 --- 内容和显示分离 --- MTV
M - Model - 数据 -M
V - View - 视图(显示) - T(模板页面)
C - Controller - 控制器(连接M和V的桥梁) - V(视图类视图函数)
django基础
- pycharm新建项目,选择虚拟环境
- 进入终端运行的命令:
- pip install django==2.1.8
- django-admin --version
- pip freeze > requirements.txt 于记录所有依赖包及其精确的版本号。以便新环境部署。
- django-admin startproject django1902_1(django项目名与建的项目名保持一致) . (有一个点)
- python manage.py runserver ---运行文件 或者右上角设置
- django-admin startapp poll(应用名) 或者
python manage.py startapp --建一个自己的应用 - python manage.py createsuperuser -- 创建超级管理员
3.django文件夹目录下的4个文件:
init.py:
settings.py:项目的配置文件
改文字为中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Chongqing'
USE_I18N = True
USE_L10N = True
USE_TZ = True
urls.py:项目的url映射文件
wsgi.py:web服务器的网端接口文件
manage.py:django项目的管理工具
4.app应用下的文件
- init.py:初始化文件 同样也标志我们的app可以被引用
- admin.py:它是我们的后台管理工具 , 后期我们的可以通过他管理我们的model和数据库。这里可以修改管理员界面,将Subject模型注册到管理后台
from django.contrib import admin
from poll.models import Fruit
class FruitAdmin(admin.ModelAdmin):
list_display = ('no', 'name', 'intro', 'fav')
search_fields = ('name', )
ordering = ('no', )
# 将Fruit模型注册到管理后台
admin.site.register(Fruit, FruitAdmin)
改管理界面的名字
from django.apps import AppConfig
class Poll2Config(AppConfig):
name = 'poll2'
verbose_name = '学科投票'
# 还要在__init__文件中写
default_app_config = 'poll2.apps.Poll2Config'
- apps.py:这个是django的生成app名称的文件
- models.py:模型文件 里面放的都是数据库表的映射
- tests.py:测试文件
- views.py:视图函数文件 --响应浏览器的请求request并回复response(通过url.py中的url映射实现交互)
- migrations:我们的数据迁移包 , 他是负责迁移文件 , 生成数据库表数据 , 后期我们要使用他去结合models生成数据库表
python manage.py makemigrations:生成迁移文件
python manage.py migrate:执行迁移文件
5.新建文件夹templates
- 建index.html
里面是前端界面的模板(动态的用Vue) - 动态的变量可以从views.py中获取
也可用 -- 后端渲染 - 服务器直接将数据填到模板页上生成完整的页面
return render(request, 'index.html', locals())
- 前端渲染 - 服务器只给JSON数据不负责渲染页面,渲染页面的工作交给浏览器的JavaScript来完成
6.连接数据库
models.py是数据库的模板文件
- 该settings.py中的
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django1903',
'HOST': '47.100.164.252',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123456',
'CHARSET': 'utf8',
'TIME_ZONE': 'Asia/Chongqing'
}
}
- 建一个数据库
create database 数据库名 default charset utf8; - 改项目名下的init文件,连接数据库
import pymysql
pymysql.install_as_MySQLdb()
- 写模板,写完后
python manage.py makemigrations 应用名 ------(生成迁移文件)
python manage.py migrate -------执行迁移文件
- 在项目中新建templates文件夹
改setting中的下面代码,,主要是 'DIRS'
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',
],
},
},
]
8.改setting中的最下面代码,建新文件夹assets,保持静态内容
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'assets'), ]
9.配置Django-Debug-Toolbar看100天第46天报表和日志
最后