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中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
Python可变参数用法实例分析
Apr 02 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
关于numpy数组轴的使用详解
Dec 05 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
Python实现数据的序列化操作详解
Jul 07 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 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php图片上传类 附调用方法
2016/05/15 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
django 外键model的互相读取方法
2018/12/15 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
顺丰快递Java软件工程师面试题
2015/07/31 面试题
韩国商务邀请函
2014/01/14 职场文书
个性与发展自我评价
2014/02/11 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
初中成绩单评语
2014/12/29 职场文书
体育委员竞选稿
2015/11/21 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers