python框架django基础指南


Posted in Python onSeptember 08, 2016

Django简介:

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。不过在Django实际使用中,Django更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。Django的主要目的是简便、快速的开发数据库驱动的网站,它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件。

django是对象关系映射的 (ORM,object-relational mapping):以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你可以通过简单的API操作数据库,同时你也可以在Django中使用原始的SQL语句。Django可以运行在Apache上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,已经支持Postgresql,MySql, Sqlite3,Oracle。

django安装

pip install Django

验证django的安装

import django
django.get_version()

创建一个django工程

django-admin.py startproject mysite

此时会自动生成一些目录和文件,最外层的manage.py,像是一个运行的入口,通过命令行的调用可以完成一些常用的功能,比如:

运行django的自带的web服务器:

python manage.py runserver http://127.0.0.1:8080

常用的同步或创建数据库表:

python manage.py syncdb

创建django project里面的子项目

python manage.py startapp polls

创建超级管理员:

python manage.py createsuperuser

还有setttings.py文件,是django的配置文件。

urls.py文件,是django用于匹配url的文件,哪个网址执行哪些后台代码(view)是在这里定义的。

Django MTV模式之----modle模型

Django采用了orm模式(对象关系映射),django的模型根据数据库表的内容定义了一个python类,这个类里面的成员和每一个数据库表里的字段一一对应;

类里面的成员类型也和数据库表里的字段类型也是对应的,名字其实也可以起的一样,看起来比较直观。这样每个类实例就代表了数据库里面的一条数据。

模型例子(在models.py里定义):

from django.db import models

class Poll(models.Model):
  question = models.CharField(max_length=200)
  pub_date = models.DateTimeField('date published')

class Choice(models.Model):
  poll = models.ForeignKey(Poll)d
  choice_text = models.CharField(max_length=200)
  votes = models.IntegerField(default=0)

django设置数据库:

settings.py文件里面的database可以定义你要使用的数据库类型,比如:

定义数据库为sqlite

'ENGINE': 'django.db.backends.sqlite3'

定义数据库为mysql

'ENGINE': 'django.db.backends.mysql'

执行django-admin.py startproject mysite, 然后再python manage.py runserver http://127.0.0.1:8080就算搭建了最简单的一个django web服务器,可通过 http://127.0.0.1:8080访问测试。另外在install_apps里面激活应用,执行pyhton manage.py syncdb,此时会根据定义的模型创建相应的数据库。

数据库操作例子:(假设File为定义的模型类)

获取所有数据:

all_filelist = File.objects.all()

获取所有数据并按某个字段排序:

all_filelist = File.objects.all().order_by('-id')

执行sql语句:

cursor = connection。cursor()
cursor.extcute("select * from info_path")
chaannels = cursor.fetchall()

过滤数据:

list=File.objects.all().filter(xxx=xxx)

根据主键查询

list=File.objects.all().get(id=1)

时间过滤:

results = File.objects.all().filter(time__range=(dayfrom, dayto))

创建新数据:

file = File(time=time,path=path,result=result)
file.save()

获取数据:

file.time
file.path
Python 相关文章推荐
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
python opencv 直方图反向投影的方法
Feb 24 Python
Python对List中的元素排序的方法
Apr 01 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python滑块验证码的破解实现
Nov 10 Python
Django中使用MySQL5.5的教程
Dec 18 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
终于搞懂了Keras中multiloss的对应关系介绍
Jun 22 Python
python中星号变量的几种特殊用法
Sep 07 #Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 #Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 #Python
Python 编码处理-str与Unicode的区别
Sep 06 #Python
Python如何获取系统iops示例代码
Sep 06 #Python
python3编码问题汇总
Sep 06 #Python
用Python实现命令行闹钟脚本实例
Sep 05 #Python
You might like
解决中英文字符串长度问题函数
2007/01/16 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Python测试人员需要掌握的知识
2018/02/08 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
Python列表list排列组合操作示例
2018/12/18 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
使用python远程操作linux过程解析
2019/12/04 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
优秀实习生感言
2014/03/01 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
语文教师求职信范文
2015/03/20 职场文书
行政申诉状范文
2015/05/20 职场文书
高一地理教学工作总结
2015/08/12 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书