下载安装
-
命令行
pip3 install django==1.11.23 -i https://pypi.tuna.tsinghua.edu.cn/simple
-
pycharm
file -- > settings --> Project Interpreter --> + --> 选择响应的版本下载
创建项目
-
命令行
先建立好本地文件夹,然后再本文件夹下执行 django-admin startproject
项目名称
-
pycharm
flie ---> new_project ---> django --->项目路径 --->选解释器
目录说明
mysite/ ├── manage.py # 管理文件,整个Django项目的启动文件 └── mysite # 项目目录 ├── __init__.py ├── settings.py # 配置 ├── urls.py # 路由 --> URL和函数的对应关系 └── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
启动项目
-
命令行
【注意**】切换到项目根目录 python manage.py runserver # 127.0.0.1:8000 默认 python manage.py runserver 80 # 127.0.0.1:80 修改端口 python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80 修改IP和端口允许所有主机通过80端口进行访问
-
pycharm
点绿三角启动带有dj标记的项目,不是简单的右键运行文件
三件套
导入 from django.shortcuts import HttpResponse, render, redirect
HttpResponse
内部传入一个字符串参数,返回给浏览器。
def index(request): # 业务逻辑代码 return HttpResponse("OK")
render
除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
将数据填充进模板文件,最后把结果返回给浏览器。
def index(request): # 业务逻辑代码 return render(request, "index.html", {"name": "alex", "hobby": ["烫头", "泡吧"]})
redirect
接受一个URL参数,表示跳转到指定的URL。
def index(request): # 业务逻辑代码 return redirect("/home/")
简单使用
urls.py写url 和函数的对应关系 写函数
from django.shortcuts import HttpResponse, render def index(request): return HttpResponse('这里是index') # 返回字符串 def home(request): return render(request, 'home.html') # 返回html页面 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', index), # 路径和函数的对应关系 url(r'^home/', home), ]
静态文件配置
在项目根目录存放静态文件夹,静态文件夹下可以存放css、js、img等项目中公用的静态文件或是文件夹。如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以。
在settings.py中设置 STATIC_URL = '/static/' # 别名,引入静态文件时以static开头,这里的static不是代表的目录 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ] 【举例】 STATICFILES_DIRS = [ #按照列表的顺序进行查找 os.path.join(BASE_DIR, 'x1'), os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 'x2') ]
MIDDLEWARE中间件
如果是提交post请求,注释掉settings.py
下的MIDDLEWARE
属性的csrf中间件 'django.middleware.csrf.CsrfViewMiddleware'
,用改解决请求时出现403 错误
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', ]
TEMPLATES模板路径设置
在settings.py
TEMPLATES属性中,设置公用temples路径,是指到 BASE_DIR/templates文件夹中去取模板
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')] #是指到 BASE_DIR/templates文件夹中去取模板 , ]
后边接触到app后,还可以在app中建立templates,是app专用的。
登录表单设置
form表单
-
action 提交的地址,默认是往本地址提交数据 ;method 请求方法,默认是get,如果是实现认证功能的话,需要手动改成post
-
input 需要有name ,用于提交数据时数据以可知的键值对方式传输,便于进行数据处理;required=""表示是必填项
-
submit 提交的按钮或者input
-
前端校验,在form标签中使用 novalidate
-
django 中可以在函数中使用request.method从看看浏览器提交的请求方式;使用request.POST可以获取form提交的数据,获取的是一个字典
-
重定向:从 django.shortcuts中导入redirect ,让请求的页面跳转到其他指定的页面。 redirect("https://cn.bing.com") 跳转到指定的网页; redirect("/home/") 跳转到本地的页面,前边的/必须要写,不然会加到前边的地址上;
APP
将urls.py中定义的功能分类存放
新建APP
命令行:
python manage.py startapp app名称
pycharm中:
tools --> run manage.py task --> startapp app名
注册APP
在settings中进行注册
INSTALLED_APPS = [ 'app01', # 方法一 'app01.apps.App01Config', # 推荐写法 ]
在urls.py中导入
从app中把函数或者功能导入到urls.py中
from app01 import views
目录
migrations文件夹存放迁移文件用
admin.py django admin
apps.py app的信息
models.py 模型 model 跟数据库有关
views.py 写函数和功能