DJango的创建和使用详解(默认数据库sqlite3)


Posted in Python onNovember 18, 2019

1.安装虚拟环境

虚拟环境是真实python环境的复制版本。

安装虚拟环境的命令:

1)sudo pip install virtualenv #安装虚拟环境

2)sudo pip install virtualenvwrapper #安装虚拟环境扩展包

3)编辑家目录下面的.bashrc文件,添加下面两行。

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

4)使用source .bashrc使其生效一下。

创建虚拟环境命令:

mkvirtualenv 虚拟环境名

创建python3虚拟环境:

mkvirtualenv -p python3 bj11_py3

进入虚拟环境工作:

workon 虚拟环境名

查看机器上有多少个虚拟环境:

workon 空格 + 两个tab键

退出虚拟环境:

deactivate

删除虚拟环境:

rmvirtualenv 虚拟环境名

虚拟环境下安装包的命令:

pip install 包名

注意:不能使用sudo pip install 包名,这个命令会把包安装到真实的主机环境上而不是安装到虚拟环境中。

apt-get install 软件

pip install python包名

安装django环境:

pip install django==1.8.2

查看虚拟环境中安装了哪些python包:

pip list

pip freeze

2.创建项目

django-admin startproject 项目名称

注意:创建应用必须先进入虚拟环境

DJango的创建和使用详解(默认数据库sqlite3)

__init__.py: 说明test1是一个python包。

settings.py: 项目的配置文件

urls.py: 进行url路由的配置

wsgi.py: web服务器和DJanggo交互的入口

manage.py: 项目的管理文件

3.创建应用

一个项目由很多个应用组成的,每一个应用完成一个特定的功能。

创建应用的命令如下:

python manage.py startapp 应用名

注 意:创建应用时需要先进入项目目录。

应用目录如下:

__init__.py: 说明目录是一个python模块

models.py: 用于写和数据库项目的内容

views.py: 接收数据,处理数据,与M,T进行交互,返回应答

定义处理函数,视图函数 培养

tests.py: 测试代码的文件

admin.py: 网站后台管理相关的文件

建立应用和项目之间的联系,需要对应用进行注册。

修改settings.py中的INSTALLED_APPS配置项。

运行开发web服务器命令:

python manage.py runserver

ORM

django中内嵌了ORM框架,ORM框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作。

设计类:模型类。

ORM另外一个作用:根据设计的类生成数据库中的表。

模型类

模型类设计

在应用models.py中设计模型类。

必须继承与models.Model类。

1) 设计BookInfo类。

2) 设计HeroInfo类。

Models.ForeignKey可以建立两个模型类之间一对多的关系,django在生成表的时候,就会在多的表中创建一列作为外键,建立两个表之间一对多的关系。

模型类生成表

1) 生成迁移文件

命令:python manage.py makemigrations

迁移文件是根据模型类生成的。

2) 执行迁移生成表

命令:python mange.py migrate

根据迁移文件生成表。

生成表名的默认格式:

应用名_模型类名小写

通过模型类操作数据表

进入项目shell的命令:

python manage.py shell

以下为在相互shell终端中演示的例子:

首先导入模型类:

from booktest.models import BookInfo,HeroInfo

1)向booktest_bookinfo表中插入一条数据。

b = BookInfo() #定义一个BookInfo类的对象

b.btitle ='天龙八部' #定义b对象的属性并赋值

b.bpub_date = date(1990,10,11)

b.save() #才会将数据保存进数据库

2)查询出booktest_bookinfo表中id为1的数据。

b = BookInfo.objects.get(id=1)

3)在上一步的基础上改变b对应图书的出版日期。

b.bpub_date = date(1989,10,21)

b.save() #才会更新表格中的数据

4)紧接上一步,删除b对应的图书的数据。

b.delete() #才会删除

5)向booktest_heroInfo表中插入一条数据。

h = HeroInfo()

h.hname = '郭靖'
h.hgender = False

h.hcomment = ‘降龙十八掌'

b2 = BookInfo.objects.get(id=2)

h.hbook = b2 #给关系属性赋值,英雄对象所属的图书对象

h.save()

6)查询图书表里面的所有内容。

BookInfo.objects.all()

HeroInfo.objects.all()

关系操作

1)查询出id为2的图书中所有英雄人物的信息。

b = BookInfo.objects.get(id=2)

b.heroinfo_set.all() #查询出b图书中所有英雄人物的信息

后台管理

1) 本地化

语言和时区的本地化。 zh-hans

修改settings.py文件。 Asia/Shanghai

2) 创建管理员

命令:python manage.py createsuperuser

3) 注册模型类

在应用下的admin.py中注册模型类。

告诉djang框架根据注册的模型类来生成对应表管理页面。

b = BookInfo()

str(b) __str__

4) 自定义管理页面

自定义模型管理类。模型管理类就是告诉django在生成的管理页面上显示哪些内容。

视图

在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求的,视图函数处理之后,要给浏览器返回页面内容。

视图函数的使用

1)定义视图函数

视图函数定义在views.py中。

例:

def index(request):

#进行处理。。。

return HttpResponse('hello python')

视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象,hello python就是返回给浏览器显示的内容。

2)进行url配置

url配置的目的是让建立url和视图函数的对应关系。url配置项定义在urlpatterns的列表中,每一个配置项都调用url函数。

url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作。

配置url时,有两种语法格式:

a) url(正则表达式,视图函数名)

b) url(正则表达式,include(应用中的urls文件))

工作中在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。

url匹配的过程

在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写url和视图函数的对应关系。

当用户输入如http://127.0.0.1:8000/aindex时,去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串继续到项目的urls文件中进行正则匹配,匹配成功之后执行视图函数index,index视图函数返回内容hello python给浏览器来显示。

模板

模板不仅仅是一个html文件。

模板文件的使用

1) 创建模板文件夹

2) 配置模板目录

3) 使用模板文件

a) 加载模板文件

去模板目录下面获取html文件的内容,得到一个模板对象。

b) 定义模板上下文

向模板文件传递数据。

c) 模板渲染

得到一个标准的html内容。

给模板文件传递数据

模板变量使用:{{ 模板变量名 }}

模板代码段:{%代码段%}

for循环:

{% for i in list %}

{% endfor %}

以上这篇DJango的创建和使用详解(默认数据库sqlite3)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 爬虫图片简单实现
Jun 01 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
python之信息加密题目详解
Jun 26 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
python中sort和sorted排序的实例方法
Aug 26 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
python查看数据类型的方法
Oct 12 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
详解Django配置优化方法
Nov 18 #Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 #Python
基于python操作ES实例详解
Nov 16 #Python
Python爬取豆瓣视频信息代码实例
Nov 16 #Python
Pandas数据离散化原理及实例解析
Nov 16 #Python
python实现XML解析的方法解析
Nov 16 #Python
Python实现自定义读写分离代码实例
Nov 16 #Python
You might like
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
Yii配置文件用法详解
2014/12/04 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
vue.js中npm安装教程图解
2018/04/10 Javascript
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
简单学习Python time模块
2016/04/29 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
matplotlib实现区域颜色填充
2019/03/18 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Django用户认证系统 User对象解析
2019/08/02 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
Python运行DLL文件的方法
2020/01/17 Python
2014自荐信的写作技巧
2014/01/28 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
家长会欢迎标语
2014/06/24 职场文书
微信早安问候语
2015/11/10 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers