一、安装及使用
-
下载安装
-
命令行:pip3 install django==1.11.21
-
pycharm
-
-
创建项目
-
命令行:
-
找一个文件夹存放项目文件,打开终端:
-
django-admin startproject 项目名称
-
项目目录
-
-
pycahrm
-
-
启动
-
命令行
-
切换到项目的根目录下 manage.py
-
python36 manage.py runserver
—— 127.0.0.1:80` -
python36 manage.py runserver 80
——127.0.0.1:80 -
python36 manage.py runserver 0.0.0.0:80
——0.0.0.0:80
-
-
pycharm:点绿三角启动 可配置
-
-
简单使用
-
示例:返回HTML指定文件
# 在urls.py中 # 导入 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), ]
-
二、静态文件
-
配置
-
在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/
-
多个文件路径,也是使用同一个别名,不是文件名
-
如果别名后的路径名相同,按照STATICFILES_DIRS列表的顺序进行查找
<link rel="stylesheet" href="/static/css/login.css"> {# 别名开头 #}
-
三、简单的登录实例
-
form表单提交数据注意的问题:
-
提交的地址:action="",请求的方式:method="post"
-
所有的input框有name属性,如name="username"
-
有一个input框的type="submit"或者有一个button
-
-
提交post请求,由于Django中有一个csrf校验,所有请求会出问题
-
解决方式:把settings中MIDDLEWARE的'django.middleware.csrf.CsrfViewMiddleware'注释掉
-
-
重定向
-
导入:from django.shortcuts import redirect
-
使用方式
# 在函数中使用,例如 return redirect('/index/') # 参数:路径url # 注意:前面必须加/,代表从url根拼接,否则就会在当前url后面一直拼接
from django.shortcuts import HttpResponse, render, redirect def index(request): # return HttpResponse('index') return render(request, 'index.html') def login(request): if request.method == 'POST': # 获取form表单提交的书籍 username = request.POST['username'] password = request.POST['password'] # 验证用户名和密码 if models.User.objects.filter(username=username,password=password): # 验证成功跳转到index页面 # return redirect('https://www.baidu.com/') return redirect('/index/') # 不成功 重新登录 return render(request, 'login.html') urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index), url(r'^login/', views.login), ]
-
四、app
-
创建app
-
命令行:python manage.py startapp app名称
-
pycharm:tools --> run manage.py task --> 输入命令:startapp app名称
-
-
注册app
-
在settings.py中设置,例:app名为app01
INSTALLED_APPS = [ ... 'app01', 'app01.apps.App01Config', # 推荐写法 ]
-
-
app中的文件
-
migrations:存放迁移文件的
-
admin.py:Django提供的后台管理工具
-
app.py:与app信息相关的
-
models.py:跟ORM有关的内容
-
views.py:视图,写函数的
-
五、使用MySQL流程
-
创建一个MySQL数据库:create database day53;
-
在settings.py中设置,Django连接MySQL数据库:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 引擎 'NAME': 'day53', # 数据库名称 'HOST': '127.0.0.1', # ip地址 'PORT':3306, # 端口 'USER':'root', # 用户 'PASSWORD':'123' # 密码 } }
-
在与settings,py同级目录下的init文件中写入:
import pymysql pymysql.install_as_MySQLdb()
-
创建表(在app下的models.py中写类):
from django.db import models class User(models.Model): username = models.CharField(max_length=32) # username varchar(32) password = models.CharField(max_length=32) # username varchar(32)
-
执行数据库迁移的命令:
-
python manage.py makemigrations:检测每个注册app下的model.py,记录model的变更记录
-
python manage.py migrate:同步变更记录到数据库中
-
六、MVC和MTV
-
MVC
-
M: model 模型 —— 和数据库打交道
-
V:view 视图 —— HTML
-
C: controller 控制器 —— 调度 传递指令 业务逻辑
-
-
MTV:
-
M: model 模型 ORM —— 和数据库打交道
-
T: tempalte 模板 —— HTML
-
V:view 视图 —— 函数 业务逻辑
-
-
djando是MTV模式