什么是django?
django是一个基于python的高级web开发框架,它能够让开发人员进行高效
且快速的开发,高度集成(不用自己造轮子),免费并且开源。
安装python
windows:python官网下载对应是msi安装文件
记得勾选add python.exe to Path
mac及linux自带python,无需安装
windows下安装django
注意查看官网上的FAQ选择合适的版本。
方法一:
打开命令行:
pip install Django==1.10.2
方法二:
下载源码,如你需要的版本.tar.gz文件,并解压;
打开命令行:
cd 到解压的根目录下
python setup.py install
确认是否安装成功
python -m django --version
创建项目
打开命令行,进入想要安置项目的目录;
django-admin startproject newProjectTestName
newProjectTestName是自定义的项目名称;
如果没有报错,就表示创建成功了;
pycharm上也可以新建新建项目。
项目目录介绍
- 项目目录结构
manage.py
newProjectTestName
init.py
settings.py
urls.py
wsgi.py
-
manage.py
与项目进行交互的命令行工具集的入口,即项目管理器;
执行python manage.py
来查看所有命令 ; -
newProjectTestName
项目的一个容器;
包含项目最基本的一些配置;
目录名称和项目名称一致,不建议修改; -
wsgi.py
WSGI:python服务器网关接口;
python应用与web服务器之间的接口; -
urls.py
URL配置文件;
django项目中所有地址(页面)都需要我们自己去配置其URL; -
settings.py
项目的总配置文件;
里面包含了数据库、web应用、时间等各种配置;
BASE_DIR = … 项目的根目录;
SECRET_KEY= … 安全码;
DEBUG=… 实际生产中需关闭DEBUG;
ALLOWED_HOSTS=… 关闭DEBUG后,django只允许用户通过;ALLOWED_HOST的地址来访问我们的网站,其他所有地址都被屏蔽;
INSTALLED_APPS=… 包含的是django默认生产的应用,开发者自行创建的应用的名称也需要写在此处,否则应用不被识别;
ROOT_URLCONF=… 指向URL的根文件;
TEMPLATES=… 模板,放置各个html文件;
DATABASES=… 数据库配置 ,需要使用其他数据库时可以在django的官方文档中查找配置方法 https://docs.djangoproject.com/en/2.1/ref/settings/#databases ;
STATIC_URL=… 静态文件的地址,存放js、css、img文件 ; -
init.py
python中声明模块的文件;
内容默认为空;
创建应用
打开命令行,
cd 到项目中manage.py同级目录
python manage.py startapp newApp(应用名)
添加应用名到settings.py中的INSTALLED_APPS里
应用目录介绍
- 目录结构
migrations
init.py
__init.py
admin.py
apps.py
models.py
tests.py
views.py
-
migrations
数据迁移模块;内容自动生成; -
admin.py
该应用的后台的管理系统配置; -
apps.py
该应用的一些配置;django-1.9以后自动生成; -
models.py
数据模块;使用ORM框架;类似于MVC结构中的Models(模型); -
tests.py
自动化测试模块;django提供了自动化测试功能;在这里编写测试脚本; -
views.py
执行响应的代码所在模块;代码逻辑处理的主要地点;项目中大部分代码在这里编写;
创建第一个页面(响应)
工具:pycharm
编辑newApp.views
from django.http import HttpResponse
Django 使用Request 对象和Response 对象在系统间传递状态。 当请求一个页面时,Django会建立一个包含请求元数据的
HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest
对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。
与由Django自动创建的HttpRequest 对象相比,HttpResponse
对象由开发人员创建.你创建的每个视图负责初始化实例,填充并返回一个 HttpResponse. HttpResponse
类是在django.http模块中定义的。
在django的views中, 每个响应对应一个函数,函数必须返回一个响应; 函数必须存在一个参数,一般约定为request
def index(request):
return HttpResponse('Hello, world!')
配置url:
每个URL都以url的形式写出来;
url函数放在urlpatterns列表中;
url函数三个参数:URL(正则),对应方法,名称
打开urls.py文件,
import newProjectTestName.views as bv
urlpatterns=[
url(r'^admin/', admin.site.urls),
url(r'^index/', bv.index),
]
打开命令行,启动服务:
如果是在虚拟环境里创建项目,需要进入虚拟环境,在manage.py同根目录, 再执行以下命令;
python manage.py runserver
输入网址,打开刚刚新建的页面:
127.0.0.1:8000/index/
显示 Hello, world! 即代表成功。
CTRL+C中断服务一下。
配置url的其他方法:
import include 方法
from django.conf.urls import url, include
在urlpatterns下添加一个URL,指向newApp里新建的urls文件
url(r'^index,include('newApp.urls')),
在APP目录下创建urls.py文件,格式与根urls.py相同
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^blog/', views.index),
]
输入网址:
http://127.0.0.1:8000/index/blog/
显示 Hello, world! 即代表成功。
注意事项:
根urls.py针对APP配置的URL名称,是该APP所有URL的总路径;
配置URL时注意 正则表达式结尾符号 $ 和 /