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 添加用户设置密码并发邮件给root用户
Jul 25 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
pytorch训练imagenet分类的方法
Jul 27 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
Python jieba库用法及实例解析
Nov 04 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
Dec 13 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 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中isset()和unset()函数的用法小结
2014/03/11 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
python中Apriori算法实现讲解
2017/12/10 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
学生励志演讲稿
2014/01/06 职场文书
小区消防演习方案
2014/02/21 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
美术教师个人工作总结
2015/02/06 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python