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生成器实现微线程编程的教程
Apr 13 Python
简单实现python收发邮件功能
Jan 05 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
python 判断文件还是文件夹的简单实例
Jun 10 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
python实现高斯判别分析算法的例子
Dec 09 Python
python装饰器的特性原理详解
Dec 25 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Python如何急速下载第三方库详解
Nov 02 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 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
php Mysql日期和时间函数集合
2007/11/16 PHP
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
js 回车提交表单两种实现方法
2012/12/31 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
Node做中转服务器转发接口
2017/10/18 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python集合是否可变总结
2019/06/20 Python
python多线程使用方法实例详解
2019/12/30 Python
python 实现音频叠加的示例
2020/10/29 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
党校自我鉴定范文
2013/10/02 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
员工升职自荐信
2015/03/27 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
工商局调档介绍信
2015/10/22 职场文书