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 07 Python
python 从远程服务器下载东西的代码
Feb 10 Python
Python中的迭代器漫谈
Feb 03 Python
Python编程中归并排序算法的实现步骤详解
May 04 Python
Python实现的爬虫功能代码
Jun 24 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
使用python实现滑动验证码功能
Aug 05 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
python 基于opencv操作摄像头
Dec 24 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
用mysql内存表来代替php session的类
2009/02/01 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php导出生成word的方法
2015/12/25 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
简单的js表单验证函数
2013/10/28 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
ajax异步请求详解
2017/01/06 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
Python模块学习 filecmp 文件比较
2012/08/27 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
python利用opencv保存、播放视频
2020/11/02 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
学生安全教育材料
2014/02/14 职场文书
《老山界》教学反思
2014/04/08 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
商场营业员岗位职责
2015/04/14 职场文书
2015年公务员工作总结
2015/04/24 职场文书
vue里使用create, mounted调用方法
2022/04/26 Vue.js