Django安装与项目创建
Django
Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能
Django安装与项目创建
安装
windows 直接用pip进行安装
pip install django==1.11.11 # 安装django1.11.11版本
创建一个django项目
下面的命令创建了一个名为"mysite"的Django 项目
django-admin startproject mysite # mysite为项目名称
目录介绍
mysite/ ├── manage.py # 管理文件 └── mysite # 项目目录 ├── __init__.py ├── settings.py # 配置 ├── urls.py # 路由 --> URL和函数的对应关系 └── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
运行Django项目
python manage.py runserver 127.0.0.1:8000
模板文件配置
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "template")], # template文件夹位置 '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"), # 静态文件存放位置 ]
form表单时403错误解决方法
跨站请求伪造
django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', # 防止跨站请求伪造 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
{% csrf_token %}
在页面上 form表单 里面 写上 {% csrf_token %},解决form表单提交时403错误,当你提交POST数据的时候,它帮你做校验,如果校验不通过就拒绝这次请求。
APP
创建app
一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码。
命令行创建
python manage.py startapp app01
使用PyCharm创建
在下方弹出的命令窗口输入:
startapp app01
app目录结构
# 目录结构 mysite/ ├── manage.py # 管理文件 └── mysite # 项目目录 └── app01 # App目录 ├── migrations # 数据库操作记录(只是修改表结构的记录) ├── __init__.py # 表示python数据包(python3中有无均可) ├── admin.py # Django为我们提供的后台管理 ├── apps.py # 配置当前app ├── models.py # 创建数据库表结构,写指定的类,通过命令可以创建数据库结构 ├── tests.py # 单元测试 ├── views.py # 写业务逻辑代码,最重要的就是这个文件了
admin配置app显示中文名称
#配置app下的apps。py文件 from django.apps import AppConfig class CrmConfig(AppConfig): name = 'app01' verbose_name = u'中文名称' # 配置admin显示app中文名称
settings.py配置
Django的settings.py配置 >> 点我
url(路由系统)
Django路由系统 >> 点我
View视图系统
Django视图系统 >> 点我
Template模板
模板(Template)系统 >> 点我
model(模型)
Model的ORM介绍和字段及字段参数 >> 点我
Model的ORM相关操作>> 点我
Django基础必备三件套
from django.shortcuts import HttpResponse, render, redirect
HttpResponse
内部传入一个字符串参数,返回给浏览器。
例如:
def index(request): # 业务逻辑代码 return HttpResponse("OK")
render
除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
将数据填充进模板文件,最后把结果返回给浏览器。(类似于我们上面用到的jinja2)
例如:
def index(request): # 业务逻辑代码 return render(request, "index.html", {"name": "a", "hobby": ["篮球", "足球"]})
redirect
接受一个URL参数,表示跳转到指定的URL。
例如:
def index(request): # 业务逻辑代码 return redirect("/home/")
重定向是怎么回事?