python django入门

目录
  • 1.mvc vs mvt
    • mvc:
    • mvt:
  • 2.虚拟环境
  • 3.安装包
  • 4.创建django项目
  • 5.创建应用
  • 6.模型ORM
    • 选项 说明
  • 7.后台管理系统(站点管理)

1.mvc vs mvt

mvc:

m:model数据模型(将数据从数据库查询出来,再加工成前台需要的数据,统称数据模型层)

c:controller控制层(接受请求,接受请求数据,返回数据的代码层)

v:视图层(展示给用户看的层,比如网页、app、显示器等)

mvt:

m:同上

v:同上面的c

t:template模板的意思(比如京东浏览任何一个商品的详情页都是类似的页面只是数据不同,就可以写一个页面然后填充不同的数据,这个相同的页面就是模板)

2.虚拟环境

python为了不同项目之间版本不冲突,创建了虚拟环境的概念

问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
解决方案:虚拟环境
作用:虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.

虚拟环境安装:

pip install virtualenv
pip install virtualenvwrapper
可以使用豆瓣的镜像
pip install virtualen -i https://pypi.douban.com/simple

创建虚拟环境的命令:

mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 py3_django

进入虚拟环境:

workon py3_django

删除虚拟环境的命令 :

rmvirtualenv 虚拟环境名称
删除的时候需要先退出虚拟环境
先退出:deactivate
再删除:rmvirtualenv py3_django

3.安装包

项目的运行需要各种各样的包,都需要安装

进入虚拟环境后安装命令:

pip install 模块名 -i https://pypi.douban.com/simple(这里使用豆瓣镜像)
例如:
pip install django==2.1.1 -i https://pypi.douban.com/simple
如果不指定版本
pip install django -i https://pypi.douban.com/simple  默认安装最新版本
卸载:
pip uninstall xxxx
查看已安装列表:
pip list

4.创建django项目

django-admin startproject daping(项目名)

使用pycharm打开

为项目配置虚拟环境:

运行项目:

可以使用cmd进入项目目录运行
也可以点击pycharm左下角的terminal运行(运行的时候需要进入虚拟环境)
python manage.py runserver ip:端口
或:
python manage.py runserver
可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。
启动后在页面访问
127.0.0.1:8000
有个小火箭就是成功了

5.创建应用

每个项目都会有很多模块,比如商城有支付、物流等,而支付跟物流显然都是很多项目可以共用的,

为了达到复用的目的,python提出了应用的概念,把每个模块单独创建为一个应用,就可以很方便的达到复用的目的

python manage.py startapp 子应用名称
tips:如果在其他目录下可以通过相对路径找到manage.py
例如:python manage.py startapp pay (在大平的目录下创建了一个名为pay的应用)

创建了子应用,需要在项目的全局配置中加入子应用

setting----INSTALLED_APPS---找到最后一行添加应用名称

6.模型ORM

ORM:
O:Object实体类
R:relatinal关系型数据库(mysql)
M:mapping
也就是mysql有个表叫student  有id name列
那么在项目中应该有个student类 属性有id name
就把这个数据库到项目实体类的映射关系称为orm

在pay应用的models.py中新建实体类:

from django.db import models

# Create your models here.
class Teacher(models.Model):
    name = models.CharField(max_length=10)

# 实体类可以继承Model
class Student(models.Model):
    # 创建字段,字段类型...
    name = models.CharField(max_length=10)
    # 外键指定学生的老师
    teacher = models.ForeignKey(Teacher,on_delete=models.CASCADE)
on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为
on_delete=models.CASCADE, # 删除关联数据,与之关联也删除
on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做
on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError
# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)
# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)
on_delete=models.SET, # 删除关联数据,
a. 与之关联的值设置为指定值,设置:models.SET(值)
b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
类型 说明
AutoField 自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性
BooleanField 布尔字段,值为True或False
NullBooleanField 支持Null、True、False三种值
CharField 字符串,参数max_length表示最大字符个数
TextField 大文本字段,一般超过4000个字符时使用
IntegerField 整数
DecimalField 十进制浮点数, 参数max_digits表示总位数, 参数decimal_places表示小数位数
FloatField 浮点数
DateField 日期, 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误
TimeField 时间,参数同DateField
DateTimeField 日期时间,参数同DateField
FileField 上传文件字段
ImageField 继承于FileField,对上传的内容进行校验,确保是有效的图片

选项 说明

  • null 如果为True,表示允许为空,默认值是False
  • blank 如果为True,则该字段允许为空白,默认值是False
  • db_column 字段的名称,如果未指定,则使用属性的名称
  • db_index 若值为True, 则在表中会为此字段创建索引,默认值是False
  • default 默认
  • primary_key 若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用
  • unique 如果为True, 这个字段在表中必须有唯一值,默认值是False

修改setting配置文件,找到如下代码改为自己的mysql链接:

DATABASES = {
    'default':
        {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'junge',  # 数据库名字 需要在mysql创建对应的库
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
}

链接mysql需要安装mysqlclient,如下命令安装

pip install mysqlclient -i https://pypi.douban.com/simple

模型迁移 (建表)

生成迁移文件:根据模型类生成创建表的语句
python manage.py makemigrations
tips:会在migrations下面生成0001_initial.py文件,里面有表的创建语句,00001也记录了版本号,记录了每次对表的改变
执行迁移:根据第一步生成的语句在数据库中创建表
python manage.py migrate
执行完毕就会在mysql中生成对应的表

7.后台管理系统(站点管理)

修改setting.py里面的,语言跟时区

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
修改为:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

后台管理系统需要账号登录,先创建用户:

  python manage.py createsuperuser
  按照提示输入用户名密码,邮箱随便输入
  重置密码python manager.py changepassword 用户名

创建好了用户启动项目,浏览器访问站点:

python manage.py runserver 启动项目
登陆站点 :http://127.0.0.1:8000/admin

想要我们创建的实体类被站点管理,需要注册:

在admin.py中输入

from django.contrib import admin
from .models import Student, Teacher
# Register your models here.
admin.site.register(Student)
admin.site.register(Teacher)

再次访问:

(0)

相关推荐

  • Windows下Python的Django框架环境部署及应用编写入门

    环境搭建 1.下载所需的软件包: (1)python安装包 (2)django安装包 以下2个包其实是安装python包管理工具,在后面安装django文档包模块时会用到,下载网站是pypi (1)setuptools.exe  (2)pip 2.安装所需的软件包: python安装包是exe,setuptools也是exe,所以直接双击安装即可,先安装 django.pip是python模块包:安装时先解压,而后进入目录后使用命令:python setup.py install 安装即可 3.

  • Python的Django框架使用入门指引

     前言 传统 Web 开发方式常常需要编写繁琐乏味的重复性代码,不仅页面表现与逻辑实现的代码混杂在一起,而且代码编写效率不高.对于开发者来说,选择一个功能强大并且操作简洁的开发框架来辅助完成繁杂的编码工作,将会对开发效率的提升起到很大帮助.幸运的是,这样的开发框架并不少见,需要做的仅是从中选出恰恰为开发者量身打造的那款Web框架. 自从基于 MVC 分层结构的 Web 设计理念普及以来,选择适合的开发框架无疑是项目成功的关键性因素.无论是 Struts.Spring 或是其他 Web 框架的出现

  • python Django的web开发实例(入门)

    一.创建一个项目 如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置.Django详细选项设置和应用 特性配置,具体操作步骤如下所示. 1.新建Django项目 选择sqlite数据库 2.创建网站模块app 3.测试新建的模块是否正常 Validating models... 0 errors found March 12, 2014 - 10:26:53 Django version

  • python Django框架快速入门教程(后台管理)

    Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django 是一个开放源代码的 Web 应用框架,由 Python 写成. Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 . Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template). 参考官方文档:Django官方文档https:

  • python django入门

    目录 1.mvc vs mvt mvc: mvt: 2.虚拟环境 3.安装包 4.创建django项目 5.创建应用 6.模型ORM 选项 说明 7.后台管理系统(站点管理) 1.mvc vs mvt mvc: m:model数据模型(将数据从数据库查询出来,再加工成前台需要的数据,统称数据模型层) c:controller控制层(接受请求,接受请求数据,返回数据的代码层) v:视图层(展示给用户看的层,比如网页.app.显示器等) mvt: m:同上 v:同上面的c t:template模板的

  • Python django实现简单的邮件系统发送邮件功能

    本文实例讲述了Python django实现简单的邮件系统发送邮件功能.分享给大家供大家参考,具体如下: django邮件系统 Django发送邮件官方中文文档 总结如下: 1.首先这份文档看三两遍是不行的,很多东西再看一遍就通顺了. 2.send_mail().send_mass_mail()都是对EmailMessage类使用方式的一个轻度封装,所以要关注底层的EmailMessage. 3.异常处理防止邮件头注入. 4.一定要弄懂Email backends 邮件发送后端 5.多线程的邮件

  • python+Django+apache的配置方法详解

    本文实例讲述了python+Django+apache的配置方法.分享给大家供大家参考,具体如下: 下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-Apache2.2.exe 下载python-2.5.4.msi 下载Django 下载MySQL-python-1.2.2.win32-py2.5.exe 1.先安装Python-2.5.4.msi 2.安装 Django-1.1.1-final.tar.gz 解压开,然后解压到某个目录如:(D:/Dev) 在

  • python+django加载静态网页模板解析

    接着前面Django入门使用示例 今天我们来看看Django是如何加载静态html的? 我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别? 静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片.文字等的只供用户浏览但不包含任何脚本.不含有任何交互功能的网页! 动态的HTML指的是网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能 接下来,了解下加载

  • Django入门使用示例

    Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. 本文分享了Django一则入门实例,非常适合我这样的新手..大家一起学习下. 进入正题. 使用版本Django 1.8.x 使用IDE工具PyCharm 开源Web应用框架Django图文教程 1.新建Django项目,我这里是使用命令创建项目的. django-admin startproject

  • Python+Django+MySQL实现基于Web版的增删改查的示例代码

    前言 本篇使用Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能,旨在快速入门Python Web,少走弯路.效果演示在项目实战最后一节,文章结尾有整个项目的源码地址. 开发环境 开发工具:Pycharm 2020.1 开发语言:Python 3.8.0 Web框架:Django 3.0.6 数据库:MySQL5.7 操作系统:Windows 10 项目实战 1. 创建项目 File->New Project->Django

  • python django 实现验证码的功能实例代码

    我也是刚学Python  Django不久很多都不懂,所以我现在想一边学习一边记录下来然后大家一起讨论! 验证码功能一开始我在网上找了很多的demo但是我在模仿他们写的时候,发现在我的版本上根本就不能运行起来在前端页面显示的时候是图裂,有可能是我用的Python3.5的版本和django是1.10的版本的原因,我看了晚上很多的版本都是2.7的,所以我问了很多前辈和大神,终于发现了原因的所在,好了代码我就在下面帖粗来了. 这是我的项目目录. 验证码要成功显示就必须要有一个验证码生成器,所以就要写一

  • python django事务transaction源码分析详解

    python Django事务 网上关于django1.6的事务资料很多,但是1.8的却搜不到任何资料,自己要用的时候费了不少劲就是不行,现在记下要用的人少走弯路 version:Django 1.8 事务官方文档 事务中文文档里面介绍很多方法,不一一赘述,按照文档即可,下面只分析下atomic方法的源码 按照官方文档 transaction.atomic 有两种用法装饰器和上下文管理器 # atomic() 方法 # from django.db import transaction ####

  • python django 增删改查操作 数据库Mysql

    下面介绍一下django增删改查操作: 1.view.py # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse from polls.models import Test from django.shortcuts import render # Create your views here. # 解决乱码 import sys reload(sy

随机推荐