django入门

男娘i 2022-03-22 05:19 387阅读 0赞

django入门

    • django初体验
      • Django-python web开发框架
      • 为什么使用Django
      • 最常用的几个manage.py的命令
      • 创建应用
      • django概述
      • django入门与实践
        • 什么是Django
        • 浏览器浏览网页的基本原理
        • 安装Django两种方式
        • 创建项目
        • Templates介绍
        • 开发第一个Template
        • Models介绍
        • Admin简介
        • Django中的超链接
        • Templates过滤器
        • Django Shell
        • 如何使用Django Shell?
        • Admin增强

更多文章欢迎访问个人博客 www.herobin.top

django初体验

Django-python web开发框架

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

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

为什么使用Django

  • 1.快速开发 用python开发 数据库ORM系统
  • 2.大量内置应用 后台管理系统admin 用户认证系统auth 会话系统sessions
  • 3.安全性高 表单验证 SQL注入 跨站点攻击
  • 4.易于拓展

指定在python3中安装django

python3 -m pip install django

安装django

pip install django

新建django项目并启动

  1. django-admin startproject mysite
  2. cd mysite
  3. python manage.py runserver

现在服务已经启动 可以去 127.0.0.1:8000查看了

工程目录详解

  • manage.py 管理项目:包括数据库建立、服务器运行、测试…
  • mysite目录
  • settings.py 配置文件:应用、中间件、数据库、静态目录各类配置…
  • urls.py URL映射配置文件:决定一个url访问被哪个程序(函数)响应
  • wsgi.py Python应用程序或框架和Web服务器之间接口
  • manage.py 可以自己指定端口 python manage.py runserver 0.0.0.0:8080

最常用的几个manage.py的命令

  1. runserver 启动服务器
  2. migratemakemigrations 数据库相关的
  3. shell
  4. django中使用应用来分割功能 例如 游戏网站 -> 分为四个应用:游戏新闻、游戏论坛、Blog系统、在线商城

创建应用

  • 1.创建应用blog python manage.py startapp blog
  • 2.添加blog应用 mysite/settings.py -> INSTALLED_APPS

应用目录详解

  • views.py 相应客户请求返回html页面
  • models.py 定义数据库中的表
  • admin.py admin相关
  • test.py 测试相关

django概述

一次web访问的实质

1.客户发送http请求到web服务器

2.web服务器返回html页面给客户

  • 1.URL配置 建立URL和与响应函数之间的关系
  • 2.视图Views 响应客户http请求,进行逻辑处理,返回给用户html页面
  • 3.模型Models 描述我们服务器存储的数据(数据库的表)
  • 4.模板templates 用来生产html页面,返回给用户的html,是由数据(模型)和模板渲染出来的。

django入门与实践

什么是Django

Django是一个基于Python的高级WEB开发框架

它能够让开发人员进行高效且快速的开发

高度集成(不用自己造轮子),免费并且开源

浏览器浏览网页的基本原理

本质是网络通信,即通过网络进行数据传递

浏览器经过通信后获取到该页面的源代码文档(HTML等)

浏览器解析文档后以适当的形式展现给用户

安装Django两种方式

  1. pip install Django==1.10.2

下载源码,进入根目录执行python setup.py install

创建项目

打开命令行,进入想要安置项目的目录
命令行输入:django-admin startproject myblog
若没有报错,则创建项目成功
进入到项目中 cd myblog
启动项目 python manage.py runserver
指定端口 python manage.py runserver 9999

Templates介绍

什么是Templates

  • HTML文件
  • 使用了Django模板语言(Django Template Language,DTL)
  • 可以使用第三方模板(如Jinja2)

开发第一个Template

步骤

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

DTL初步使用

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

Django查找Template

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

解决Templates冲突方案

  • 在APP的Templates目录下创建以APP名为名称的目录
  • 将html文件放入新创建的目录下

Models介绍

Django中的Models是什么?

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

ORM

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

编写Models

步骤

  • 在应用根目录下创建models.py,并引入models模块(自动生成)
  • 创建类,继承models.Model,该类即是一张数据表
  • 在类中创建字段

字段创建

  • 字段即类里面的属性(变量)
  • attr = models.CharField(max_length=64)

http://docs.djangoproject.com/en/1.10/ref/models/fields/

生成数据表

步骤

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

查看

  • Django会自动在app/migrations/目录下生成移植文件
  • 执行python manage.py sqlmigrate 应用名 文件id 查看SQL语句
  • 默认sqlite3的数据库在项目根目录下db.sqlite3

查看并编辑db.sqlite3

  • 使用第三方软件
  • SQLite Export Personal
  • 轻量级,完全免费

页面呈现数据

后台步骤

  • 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 创建超级用户
    (zhangbin 752658686@qq.com zhangbin)
  • localhost:8000/admin/ Admin入口
  • 修改settings.py中LANGUAGE_CODE = ‘zh_Hans

配置应用

  • 在应用下admin.py中引入自身的models模块(或里面的模型类)
  • 编辑admin.py:admin.site.register(models.Article)

修改数据

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

修改数据默认显示名称(在admin下的)

步骤

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

模板For循环
{% for xx in xxs %}

HTML语句
{% endfor %}

Django中的超链接

超链接目标地址

  1. `href`后面是目标地址
  2. `Template`中可以用 `{% url 'app_name: url_name' param %}`
  3. 其中`app_name``url_name`都在`url`中配置
  4. 使用`request.POST['参数名']`获取表单数据
  5. `models.Article.objects.create(title,content)`创建对象
  6. 涉及`POST`方法提交表单的,前端页面加上`{% csrf_token %}`

Templates过滤器

什么是过滤器

写在模板中,属于Django模板语言

可以修改模板中的变量,从而显示不同的内容

怎么使用过滤器?

  1. {
  2. { value | filter }}
  3. 例子:{
  4. { list_nums | length }} 这样显示的就是长度而不是集合了
  5. 过滤器可叠加:{
  6. { value | filter1 | filter2 | ... }}

django访问不存在的对象时不会报错 只会传空

更多Django内建过滤器
https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#ref-templates-builtins-filters

Django Shell

什么是Django Shell?

它是一个Python的交互式命令行程序

它自动引入了我们的项目环境

我们可以使用它与我们的项目进行交互

如何使用Django Shell?

  1. python manage.py shell
  2. from blog.models import Article
  3. Article.objects.all()

有什么用?

我们可以使用Django shell来进行一些调试工作

测试未知的方法

Admin增强

创建admin配置类

  1. classArticleAdmin(admin.ModelAdmin)
  2. 注册:admin.site.register(Article,ArticleAdmin)
  3. 显示其他字段
  4. list_display = ('title','content')
  5. list_displaty同时支持tuplelist(tuple类型只有一个数据,别忘了加逗号)
  6. 过滤器
  7. list_filter = ('pub_time',) 这样就会有今天 过去七天 过去一个月 这些...

官方文档
http://docs.djangoproject.com/en/1.10/ref/contrib/admin/

发表评论

表情:
评论列表 (有 0 条评论,387人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python_Django_入门

    Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框

    相关 django 快速入门

    Django是Python语言编写的一个全栈式Web框架,可以帮助我们快速编写一个具有数据库功能、增删查改、后台管理等功能的网站。假如你只需要一些很简单的功能,使用flask可

    相关 django入门

    本来想写一个django的入门知识的,但网上找的一个非常好的django教程,直接链接了,个人推荐也可以顺便注册一个gitHub 账号,github也可以玩一下的。 [点击

    相关 Django入门(二)

    > 跟书《python编程:从入门到实践》,学习用Django编写名为“学习笔记”的Web应用程序。 Web应用程序的核心是让任何用户都能够注册账户并能够使用它,不管用户身处