django简介
Django框架介绍
- 现在的框架一般分为MVC框架和MTV框架,其中MTV框架是Django使用的框架,思想借鉴MVC(
Model View Controller
,即模型(model),视图(View),控制器(Controller)) - MTV框架
- Model(模型): 负责业务对象和数据库的对象(ORM)
- Template(模板):负责如何把页面展示给用户
- View(视图):负责业务逻辑,并在适当的时候调用Model和Template
- 除此之外,Django还有一个名为urls的分发器,作用是将一个个的URL页面请求分发给不同的view进行处理,而view再调用相应的Model和Template
- django框架中的 views.py和urls.py 相当于MVC框架中的controller , model.py相当于MVC框架中的model,负责和数据库进行的操作,template包相当于MVC框架中的view,负责将画面呈现给用户
django的下载安装和基本使用
下载安装
1.11版本是长期支持版本(LTS),最后一个支持python2 的版本
命令行下载
pip3 install django==1.11.21 -i https://pypi.tuna.tsinghua.edu.cn/simple
pycharm下载同模块安装,注意版本
创建项目
django-admin startproject 项目名
此方法创建没有templates文件夹,而且配置文件相关项目要增加
pycharm创建时,如果新建虚拟环境,默认装最新版的django
mysite/
├── manage.py # 管理文件
└── mysite # 项目目录
├── __init__.py
├── settings.py # 配置
├── urls.py # 路由 --> URL和函数的对应关系
└── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
启动项目
切换到项目的根目录下 manage.py
python manage.py runserver
默认http://127.0.0.1:8000/
python manage.py runserver 80
在80端口启动
python manage.py runserver 0.0.0.0:80
0.0.0.0:80
基本使用
# 导入
from django.shortcuts import HttpResponse,render
# 函数
def index(request):
# return HttpResponse('index')
return render(request,'index.html')
# url和函数对应关系
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', index),
]
静态文件的配置
-
按照STATICFILES_DIRS顺序查找,直到找到第一个
-
项目的子目录根目录下 的static文件需要写 dirs,如果将static放入app中,不需要写 会自动导入
#在settings.py文件中修改 STATIC_URL = '/static/' # 别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static1'), # 静态文件注册路径,有序 os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 'static2'), ]
-
当使用static包里的文件时,导入的格式如下
<link rel="stylesheet" href="/static/css/login.css"> # 别名开头
-
通过命令行创建的还需要在setting中添加
'DIRS': [os.path.join(BASE_DIR, 'templates')] #让模板前端文件和本身文件发生关联
app的创建和使用
一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码。
python manage.py startapp myapp
创建apppycharm Tools
→run manage.py Task
之后可以直接输入创建 如startapp myapp
INSTALLED_APPS = [
...
'myapp',
'myapp.apps.App01Config', # 推荐写法
]
常用命令汇总
django-admin startproject mysite # 新建项目
python manage.py runserver 127.0.0.1:8000 # 启动项目
python manage.py startapp app01 #新建app
python manage.py makemigrations # 创建数据库迁移文件
python manage.py migrate #数据库迁移
python manage.py createsuperuser #开启超级账户