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实现的解析crontab配置文件代码
Jun 30 Python
python列表的常用操作方法小结
May 21 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
pycharm 实现显示project 选项卡的方法
Jan 17 Python
使用Python 统计高频字数的方法
Jan 31 Python
Python和Go语言的区别总结
Feb 20 Python
Python定义函数功能与用法实例详解
Apr 08 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 Python
Python 读写 Matlab Mat 格式数据的操作
May 19 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
js电话号码验证方法
2015/09/28 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
简单的三步vuex入门
2018/05/20 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
python3.0 字典key排序
2008/12/24 Python
Python学习笔记之常用函数及说明
2014/05/23 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
Python运行异常管理解决方案
2020/03/09 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
想学画画?python满足你!
2020/12/24 Python
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
老师给学生的表扬信
2014/01/17 职场文书
初中英语教学反思
2014/01/25 职场文书
市场拓展计划书
2014/05/03 职场文书
党校毕业心得体会
2014/09/13 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
600字作文之感受大自然
2019/11/27 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis