本人专业小菜鸟,因为项目需要所以突击学习django,因此总结一个笔记,便于以后查找。
最基本的理解
-
首先要理解一个请求怎么从前端到后端,然后经过处理又返回给前端,而django处于怎样的位置,它的作用是什么。
这是必须要清楚的
-
然后理解django的流程,其实djagno的MVT模式就是以前的MVC模式。
django的MVT模式
-
M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
-
V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
-
T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。
一些最基本的使用
django的相关命令
- 创建项目
django startproject [projectname]
- 运行项目
#默认8000端口
django manage.py runserver
python manage.py runserver [ip]:[端口]
#所有的ip
python manage.py runserver 0.0.0.0:8000
- 新建app,
python manage.py startapp [appname]
- 模型改动创建迁移
python manage.py makemigrations
- 模型改动同步到数据库
python manage.py migrate
- 数据已经存在,需要反向生成模型https://www.jianshu.com/p/037bd7e20a7a
- 创建超级管理员
python manage.py createsuperuser
django工程目录的说明
如果创建一个新的django项目demo,使用命令如下:
django startproject demo
整个目录的结果如图:
![](https://img.haomeiwen.com/i17778542/2b168a1a0d21e47d.png)
- 与项目同名的目录,此处为demo。
- settings.py 是项目的整体配置文件。
- urls.py 是项目的URL配置文件。
- wsgi.py 是项目与WSGI兼容的Web服务器入口。
- manage.py 是项目管理文件,通过它管理项目。
如果在demo项目中在创建一个app,名为users,使用命令:
python manage.py startapp users
![](https://img.haomeiwen.com/i17778542/270e972f8c9d7873.png)
- admin.py 文件跟网站的后台管理站点配置相关。
- apps.py 文件用于配置当前子应用的相关信息。
- migrations 目录用于存放数据库迁移历史文件。
- models.py 文件用户保存数据库模型类。
- tests.py 文件用于开发测试用例,编写单元测试。
- views.py 文件用于编写Web应用视图。
关于settings的一些配置
- 数据库配置,我用mysql比较多
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'mydata', # 要存储数据的库名,事先要创建之
'USER': 'root', # 数据库用户名
'PASSWORD': 'password', # 密码
'HOST': 'localhost', # 主机
'PORT': '3306', # 数据库使用的端口
}
}
- 数据库如果用mysql需要安装:pymysql,然后在settings文件中将pymsql伪装成mysql的驱动
#需要在settings文件中将pymsql伪装成mysql的驱动
import pymysql
pymysql.install_as_MySQLdb()
- 将app在settings中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',#以上都为系统自带
'TuiJian', #注册自己app
'ckeditor', #注册自己app
'ckeditor_uploader', #注册自己app
]
- 最好修改settings中的时区,并且设置为中文模式
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
- 允许指定IP访问
#设置为*代表任何IP都可以访问,否则,将指定的IP写入这个列表就行
ALLOWED_HOSTS = ['*']
- BASE_DIR代表的是当前项目的根目录。django会依此来定位工程内的相关文件
网友评论