python django入门
作者:说重点丶 发布时间:2022-05-10 02:46:19
目录
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,表示允许为空,默认值是Falseblank
如果为True,则该字段允许为空白,默认值是Falsedb_column
字段的名称,如果未指定,则使用属性的名称db_index
若值为True, 则在表中会为此字段创建索引,默认值是Falsedefault
默认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)
再次访问:
来源:https://blog.csdn.net/weixin_39160689/article/details/121336361


猜你喜欢
- Method通过一条指令即可完成:os.system('所需指令')Note: os.system('所需指令
- 前言在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后
- 用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理==================DECLARE @
- 本文实例为大家分享了Vue+Flask实现图片传输功能的具体代码,供大家参考,具体内容如下完整流程:1.图片转为formdata 传输到后端
- 由于在遭遇到这个页面之前我们一 * 互刚好在讨论交互设计原则之类的话题,其中有一条是:包容性,即满足主体用户需求的同时,尽可能兼顾非主体用户需
- numpy.ndarray中数据转为int型首先了解内容与类型>>>print(a)(array([[0.01124722
- 1. 引言因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点
- 阅读本文能够帮助你什么?在学习vue源码的时候发现组件化过程很绕?在响应式过程中Observer、Dep、Watcher三大对象傻傻分不清?
- 除了常用的csv文件和excel文件之外,我们还可以通过PY把数据保存文npy文件格式和mat文件格式。1. npy文件npy即numpy对
- 列表推导(list comprehensions)场景1:将一个三维列表中所有一维数据为a的元素合并,组成新的二维列表。最简单的方法:新建列
- 本文主要介绍如何通过python生成ppt文件,以及借助ppt模板来生成ppt环境python 3python-pptx安装pip3 ins
- Django2.0中编写models类下的ForeignKeybook = models.ForeignKey('BookInfo&
- PyQt5不规则窗口实现动画效果实例import sysfrom PyQt5.QtCore import *from PyQt5.QtGui
- XHTML结构: <div id="myFocus-wrap"> <div id="myFo
- 在大学,有很多喜欢的课是需要抢的。但是,这个课的人数和座位都是有限的,今天这个教程教你如何抢到座位,有座位了还怕听不到课吗?赶紧学起来吧,真
- Python可以使用open函数来实现文件的打开,关闭,读写操作;Python3中的open函数定义为:open(file, mode=
- BETWEEN 运算符用于 WHERE 表达式中,选取介于两个值之间的数据范围。BETWEEN 同 AND 一起搭配使用,语法如下:WHER
- 一、安装xlrd地址下载后,使用 pip install .whl 安装即好。查看帮助:>>> import xlrd&g
- 来到杭州,迅速租了房子,扫了日常用品。再非专业地提前体验一下与工作有那么一点点点点点相关的UED(用户体验设计)。良好的用户体验是一种非必须
- SQLite3数据库的介绍和使用(面向业务编程-数据库)SQLite3介绍SQLite是一种用C语言实现的的SQL数据库它的特点有:轻量级、