初识Django笔记

目前最流行的Python Web开发框架

目录

目前最流行的Python Web开发框架

为什么使用Django

知识储备

创建项目

创建应用

什么是Templates

开发Templates

Models介绍

编写Models

Admin简介

使用Admin


Django框架负责处理大部分web开发底层细节,我们可以专注于开发web应用,避免重复造轮子

为什么使用Django

快速开发

  • 用python开发
  • 数据库ORM系统

大量内置应用

  • 后台管理系统 admin
  • 用户认证系统 auth
  • 会话系统 sessions

安全性高

  • 表单验证
  • SQL注入
  • 跨站点攻击

易于拓展

 

知识储备

  1. Python基础
  2. 数据库SQL
  3. HTTP协议
  4. HTML&CSS
  5. 正则表达式

创建项目

进入命令行: django-admin startproject 项目目录名

使用过开发工具打开项目,项目的目录结构如下

manage.py

  • 与项目进行交互的命令行工具集的入口
  • 项目管理器
  • 执行python manage.py可以查看所有命令

mysite目录

  • 项目的一个容器
  • 保存项目最基本的一些配置
  • 目录名称不建议修改

wsgi.py

  • WSGI(Python Web Server Gateway Interface)
  • 中文名称: Python服务器网关接口
  • Python应用于Web服务器之间的接口
  • 在项目开发过程中,一般是不会碰这个文件的

urls.py

  • URL配置文件
  • Django项目中所有地址(页面)都需要我们自己去配置其URL

Settings.py

  • 项目的总配置文件
  • 里面包含了数据库、Web应用、时间等各种配置

 

 

创建应用

打开命令行,进入项目中(manage.py同级目录)

输入命令:python manage.py startapp 应用名称(英文)

添加应用名到settings.py中的INSTALLED_APP里面

在开发工具中,我们常看到的应用的目录结果如下:

migrations目录

  • 数据移植(迁移)模块
  • 内容自动生成

admin.py

  • 该应用的后台管理系统配置

apps.py

  • 该应用的部分配置
  • Django-1.9以后自动生成

models.py

  • 数据模块
  • 使用ORM框架
  • 类似MVC结构中的Models(模型)

tests.py

  • 自动化测试模块
  • Django提供了自动化测试功能
  • 在这里编写测试脚本(语句)

views.py

  • 执行响应的代码所在模块
  • 代码逻辑处理的主要地点
  • 项目中大部分代码均在这里编写

如果全部url的配置都放在根(项目)的urls.py中的话,会导致文件代码过多,不便于浏览,于是通常是在应用目录下创建一个urls.py文件,然后在里面进行配置,最后在根(项目)的urls.py下进行include(如下图)

注意事项:

根据urls.py针对APP配置的URL名称,是该APP所有URL的总路径

配置URL时注意正则表达式结尾符号$和/

 

什么是Templates

  • HTML文件
  • 使用了Django模板语言(Django Template Language,DTL)
  • 可以使用第三方模板(如Jinja2)
  • 修改模板引擎,只需要修改项目目录下的settings.py中的TEMPLATES

 

开发Templates

步骤:

  • APP的根目录下创建名叫templates的目录
  • 在该目录下创建HTML文件
  • 在views.py中返回render()

DTL初步使用

  • render()函数支持一个dict类型参数
  • 该字典是后台传递到模板的参数,键为参数名
  • 在模板中使用 {{参数名}} 来直接使用

Django查找Template

  • Django按照INSTALLED_APPS中的添加顺序查找templates
  • 不同APP下templates目录中的同名.html文件会造成冲突

解决templates冲突方案

  • 在APP的templates目录下创建以APP名为名称的目录
  • 将html文件放入新创建的目录下
  • 注意调整views.py下面绑定的html文件路径

 

Models介绍

Django中的Models是什么?

  • 通常,一个Model对应数据库的一张数据表
  • Django中Model以的形式表现
  • 它包含了一些基本字段以及数据的一些行为

ORM:对象关系映射(Object Relation Mapping)

  • 实现了对象和数据库之间的映射
  • 隐藏了数据访问的细节,不需要编写SQL语句

编写Models

步骤:

  • 在应用根目录下创建models.py,并引入models模块 (默认已经创建好了)
  • 创建类,继承models.Model,该类即是一张数据表
  • 在类中创建字段
  • 字段创建
  • 字段即类里面的属性(变量)
  • attr = models.CharField(max_length=64)

生成数据表

步骤:

  • 命令行中进入manage.py同级目录
  • 执行python manage.py makemigrations app名(可选)
  • 再执行python manage.py migrate

查看:

  • Django会自动在app/migrations/目录下生成移植文件(如0001initial.py)
  • 执行python manage.py sqlmigrate 应用名 文件id 查看SQL语句(如下图)

默认sqlite3的数据库在项目根目录下db.sqlite3

查看并编辑db.sqlite3:使用第三方软件SQLite Expert Personal (轻量级,完全免费)

下载地址:http://www.sqliteexpert.com/download.html

 

页面呈现数据

后台步骤

views.py中import models

article = models.Article.objects.get(pk=1)

render(request,page,{'article':article})

前台呈现 {{article.title}}

 

Admin简介

什么是Admin?

  • Admin是Django自带的一个功能强大的自动化数据管理界面
  • 被授权的用户可直接在Admin中管理数据库
  • Django提供了许多针对Admin的定制功能

 

配置Admin

创建用户

python manage.py createsuperuser 创建超级用户

localhost:8000/admin Admin入口(如下图)

 

如果需要修改页面语言,修改项目目录下的settings.py中的内容

配置应用

在应用下admin.py中引入自身models模块(或里面的模型类)

编辑admin.py:admin.site.register(models.Article)

admins.py

from .models import Article 

admin.site.register(Article)

 

使用Admin

修改数据

  • 点击Article超链接进入Article列表页面
  • 点击任意一条数据,进入编辑页面修改
  • 编辑页面下方一排按钮即可执行相应操作

修改数据默认显示名称

步骤:

  • 在Article类下添加一个方法
  • 根据Python版本选择__str__(self)或__unicode__(self) return self.title

models.py

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=32, default="Title")
    content = models.TextField(null=True)

    # 3.6版本未起作用
    # def __unicode__(self):
    #     return self.title

    def __str__(self):
        return self.title

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值