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编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
python去掉空白行的多种实现代码
Mar 19 Python
python脚本实现验证码识别
Jun 07 Python
python图像处理入门(一)
Apr 04 Python
python文件选择对话框的操作方法
Jun 27 Python
python 动态迁移solr数据过程解析
Sep 04 Python
python爬虫中多线程的使用详解
Sep 23 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
Python下载的11种姿势(小结)
Nov 18 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 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实现无限级分类(不使用递归)
2015/10/22 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
python 循环while和for in简单实例
2016/08/16 Python
对numpy中shape的深入理解
2018/06/15 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
软件测试笔试题
2012/10/25 面试题
《争吵》教学反思
2014/02/15 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
浅析JavaScript中的变量提升
2022/06/01 Javascript