一、安装及使用

  • 下载安装

    • 命令行: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':'' # 密码
    }
    }
  • 在与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模式

Django基本知识的更多相关文章

  1. Django之知识总结

    1. 课程介绍 - 数据类型 - 函数 - 面向对象三大特性:继承,封装,多态 - socket:本质传输字节:所有网络通信都基于socket - 数据库设计:单表.FK.M2M (自己作业:自己领域 ...

  2. django基础知识

    一.django的安装 1. pip3 install django 2. 把安装路径加到环境变量里以便以后启动admin相关命令,在windows系统中---我的电脑---属性----高级系统设置- ...

  3. Django models知识小点

    django 为使用一种新的方式,即关系对象映射(ORM) 一,创建表 1,基本结构 注意: 1,创建标的时候,如果我们不给表加自增列,生成表的时候会默认给我们生成一列为ID的自增列,当然我们也可以自 ...

  4. Django 基础知识

    Django Models django 本身提供了非常强大易使用的ORM组件,并且支持多种数据库,如sqllite,mysql,progressSql,Oracle等,当然最常用的搭配还是mysql ...

  5. Django ORM 知识概要

    相关命令 python3 manage.py makemigrations 根据模型生成相关迁移文件 python3 manage.py migrate 根据迁移文件,将表结构更新到数据库中,并在Dj ...

  6. Django进阶知识

    drf学习之Django进阶点 一.Django migrations原理 1.makemigrattions: 相当于在每个app下的migrations文件夹下生成一个py脚本文件用于创建表或则修 ...

  7. Django准备知识-web应用、http协议、web框架、Django简介

    一.web应用 Web应用程序是一种可以通过web访问的应用程序(web应用本质是基于socket实现的应用程序),程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 ...

  8. django 基础知识回顾

    内容回顾: 1. ajax参数 url: type: data: 1.value不能是字典 {k1:'v1',k2:[1,2,3,],k3; JSON.string} 2.$('').serilize ...

  9. django基础知识之Response对象

    HttpResponse对象 在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调 ...

  10. Django基础知识MTV

    Django简介 Django是使用Python编写的一个开源Web框架.可以用它来快速搭建一个高性能的网站. Django也是一个MVC框架.但是在Django中,控制器接受用户输入的部分由框架自行 ...

随机推荐

  1. arcgis api for javascript 学习(四) 地图的基本操作

    1.文章讲解的为地图的平移.放大.缩小.前视图.后视图以及全景视图的基本功能操作 2.主要用到的是arcgis api for javascript中Navigation的用法,代码如下: <! ...

  2. [20190909]完善vim的bccacl插件.txt

    [20190909]完善vim的bccacl插件.txt http://blog.itpub.net/267265/viewspace-2140886/http://blog.itpub.net/26 ...

  3. Python控制流程

    if  elif    else的用法 三目运算符的用法 while 和 for 两种循环 break 和 continue 的用法 条件判断 if elif else if 和 elif 后面填的判 ...

  4. show()和隐藏hide() slideDown()和 slideUp() fadeIn()和fadeOut()

    1==>显示show()和隐藏hide() 是一组动画 与切换toggle()$("div").show():当不传递参数时,没有动画效果,它将某个元素瞬间显示出来 $(&q ...

  5. DRF视图功能介绍(2)

    本帖最后由 杰哥,我就服你 于 2018-12-20 13:22 编辑 Django rest framework(DRF) D:是一个用于构建Web API强大又灵活的框架,基于Django框架二次 ...

  6. zabbix使用钉钉告警

    1.钉钉创建群 2.[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf # 配置文件中查找”Alert”查看告警脚本存放路径 [root@lo ...

  7. selenium添加chrome配置项

    selenium虽然强大,但也有不方便的地方,selenium每次启动浏览器都是一个全新的浏览器,并没有加载任何的配置,这样在爬取一些需要登陆才能看到的页面时就有些不太方便.但我们可以通过加载chro ...

  8. 攻防世界pwn之新手区

    涉及的工具有 Ubuntu 16.04 pwntools IDA gdb-peda 1.get_shell 连接就给flag,可以直接用nc连接,然后输入ls查看里面的目录,发现有名字叫flag文件, ...

  9. Jenkins如何集成运行testng.xml文件的解决方案

    前言: 在我们使用maven+testng+restassured+reportng实现接口测试框架时,会发现在本机创建项目,进行一些pom引用和简单的封装后,很快就可以直接利用idea自带的test ...

  10. 开发JQuery插件标准结构

    1. 定义作用域 定义一个JQuery插件,首先要把这个插件的代码放在一个不受外界干扰的地方.如果用专业些的话来说就是要为这个插件定义私有作用域.外部的代码不能直接访问插件内部的代码.插件内部的代码不 ...