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中的floor()方法
May 15 Python
Python numpy 点数组去重的实例
Apr 18 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
Python中拆分字符串的操作方法
Jul 23 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
Python虚拟环境virtualenv创建及使用过程图解
Dec 08 Python
Python办公自动化之Excel(中)
May 24 Python
Python访问Redis的详细操作
Jun 26 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
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
php和nginx交互实例讲解
2019/09/24 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python实现无证书加密解密实例
2014/10/27 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Sanic框架路由用法实例分析
2018/07/16 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
奥地利网上书店:Weltbild
2017/07/14 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
关于幼儿的自我评价
2013/12/18 职场文书
师德师风剖析材料
2014/09/30 职场文书
2014年设计师工作总结
2014/11/25 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Docker下安装Oracle19c
2022/04/13 Servers
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技
Go gorilla/sessions库安装使用
2022/08/14 Golang