Djanog简介
Django简介
安装:Django官网下载页面
安装最新LTS版
pip3 install django==1.11.20
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
Django 是一个开放源代码的 Web 应用框架,由 Python 写成。
Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template),来降低各个部分之间的耦合性。
Django的MTV模式
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
Django中常用命令
在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目、启动Django程序、创建新的APP、数据库迁移等。
创建Django项目
一般先创建一个文件夹来存放项目文件,切换到该目录下,启动命令工具。创建一个名为mysite的django项目。
django-admin startproject mysite
创建好项目之后,可以查看当前目录下多出一个名为mysite的文件夹,mysite的文件夹目录结构如下:
mysite/
manage.py #管理文件
mysite/ #项目目录
__init__.py
settings.py #配置
urls.py #路由-->url和函数的对应关系
wsgi.py # runserver命令就使用wsgiref模块做简单的web server
启动Django项目
启动项目的时候,需要切换到mysite目录下,执行如下命令:
python manage.py runserver #默认使用8000端口
命令后面还可以指定参数:
python manage.py runserver 8888 #8888为新指定的端口
python manage.py runserver 127.0.0.1:8000 #还可以指定IP和端口,冒号分割
局域网内所有电脑都能访问django项目的方法:
python manage.py runserver 0.0.0.0:8000
settings.py文件中配置
模板文件配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')] # templaate文件夹位置
,
'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',
],
},
},
]
静态文件配置
STATIC_URL = '/static/' #HTML中使用的静态文件夹前缀
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),#静态文件存放位置
]
例如:mysite/创建static目录
mysite/
manage.py #管理文件
mysite/ #项目目录
__init__.py
settings.py #配置
urls.py #路由-->url和函数的对应关系
wsgi.py #runserver命令就使用wsgiref模块做简单的web server
static/ #新建静态文件目录
css/ #新建css目录
imgs/ #新建imgs目录
js/ #新建js目录
plugins/ #新建plugins中间件目录,里面用来放bootstrap等中间件
Django基础必备三件套
from django.shortcuts import HttpResponse, render, redirect
HttpResponse
内部传入一个字符串参数,返回给浏览器。
例如:
def index(request):
# 业务逻辑代码
return HttpResponse("OK")
remder
除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
将数据填充进模板文件,最后把结果返回给浏览器。(类似于我们上面用到的jinja2)
例如:
def index(request):
# 业务逻辑代码
return render(request, "index.html", {"name": "碉堡了", "hobby": ["旅游", "泡吧"]})
redirect
接受一个URL参数,表示跳转到指定的URL。
例如:
def index(request):
# 业务逻辑代码
return redirect("/home/")
重定向请求流程
创建APP
一个Django项目可以分为多个APP,用来隔离不同功能模块的代码。
命令行创建:
python manage.py startapp app01
执行命令后,项目目录下多出一个app01的文件夹,目录结构如下:
app01/
migrations
__init__.py
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
数据库迁移
python manage.py makemigrations
python manage.py migrate
创建超级用户
python manage.py createsuperuser
输入以上命令后,根据提示输入用户名、邮箱、密码、确认密码。密码的要求至少是不八位,不能和邮箱太接近,两次密码需要一致。