python web框架 Django进阶
django 进阶
基础中,一些操作都是手动创建连接的非主流操作,这样显得太low,当然也是为了熟悉这个框架!
实际中,django自带连接数据库和创建app的机制,同时还有更完善的路由系统机制。既然基础已经了解,那就聊聊主流的东西。
一、web框架重新认知:
既然都是框架,那肯定是都包含了这些模块和对应的功能!但是不同框架之间也是有些诧异,毕竟封装的方法不同。
Django:
- 路由(url路由系统)
- 视图(视图函数)
- 模板(模版页面)
- 数据库 ---> ORM(类-表;对象-行; pymysql连接数据库)
Torando:
- 路由
- 视图
- 模板
- 数据库 ---> 自由:pymysql;SqlAchemy
Flask:
- 路由
- 视图
- 模板(第三方的组件)
- 数据库 ---> 自由:pymysql;SqlAchemy 数据库:操作数据库就两种选择:ORM框架或是原生sql,对于复杂的sql语句,ORM框架是无法实现的,还需要去写原生的sql语句去执行。
所以说,对于数据库操作,这连个选择都必须要会。
二、django创建项目及目录设置操作:
有关django创建新项目的操作,已经在基础中提到过了,就不再重申了。由于我是使用pycharm,所以一些正经的操作都会以pycharm为准。
1、创建新项目,创建satic文件,配置settings.py文件,这些操作都略过
2、利用django创建app:
(1)pycharm最底下一行是操作行,找到Terminal,点击进入命令行操作窗口。
(2)执行命名:python manage.py startapp app01
- 此处说明一下:首先,创建项目的时候,有个python环境。看准是用什么版本的python创建的。
其次,若电脑装了两个不同版本的python环境,先看自己的python自行程序是否重命名了。由于创建是利用python程序去执行,操作的时候一定要写对!
最后:单环境下,直接执行 上述代码即可完成创建。由于我是双环境,执行创建代码为:python3 manage.py startapp app01
- 再一点注意:可以创建多个app!一个django下可以有多个app(程序)存在!
例如:python3 manage.py startapp app02
(3)创建成功之后,会在当前项目中生成一个名为app***的文件夹,每个文件夹内会有多个py文件。先做如下解释:
- app01
- migrations文件夹 用于存放数据库操作日志,不要轻易删除里边的数据
- __init__ 模块执行前先自动加载的文件(学模块是有具体说明)
- admin Django自带后台管理相关配置
- apps 保存当前app的一些配置信息
- modal 写类,根据类创建数据库表
- test 单元测试
- views 业务处理
- app02
……
3、多个不同的app代表不同的业务,分管不同的模块和功能,这样就可以做到对同一框架的协同开发操作。
四、ORM --->关系对象映射操作数据库 配置
django的ORM没法直接连接数据库,需要利用pymysql第三方工具连接数据库,但是django默认使用MYSQLDB连接mysql,
但是python3中没有MYSQLDB,所以就需要修改django默认连接mysql的方式!
同时,django中默认使用sqlite(文件类型)操作数据库,也需要进行修改!
1、配置数据库:
# 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
1、如下设置放置的与project同名的配置的 __init__.py文件中
import pymysql
pymysql.install_as_MySQLdb()
2、修改与project同名的配置文件settings.py中的DATABASES连接数据库的配置信息:
(1)把原来的信息注释掉!
(2)写入新的配置信息:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'s4day70', #数据库名称
'USER': 'root', #账号
'PASSWORD': '', #密码
'HOST': 'localhost', #IP
'PORT': 3306, #端口号
'CHARSET':'utf8', #字符编码
}
}
3、注册app:
- 在settings.py文件中的 INSTALLED_APPS 配置信息,最后加上要操作的app文件名以完成注册操作。注意是字符串类型!
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"app01",
]
- 有的会自动添加,不用大惊小怪,检查是否正确就行!
五、django ORM操作:
1、字段及参数
2、models操作
十三、Django models中关于blank与null的补充说明
十六、Django 之 信号
十七、Django 之 缓存
补充:
#在返回信息中 from django.http import JsonResponse #给页面返回JSON序列化的数据 def post(request,*args,**kwargs):
……
data = {"k1":"v1","k2":"v2"}
return JsonResponse(data) 注意:JsonResponse默认是将字典序列化返回给页面,如是想处理列表类型的数据,则需要额外加上一个参数 safe=False
参考地址:
http://www.cnblogs.com/wupeiqi/articles/5237704.html
http://www.cnblogs.com/wupeiqi/articles/5246483.html
http://www.cnblogs.com/wupeiqi/articles/6216618.html
python web框架 Django进阶的更多相关文章
- 利用python web框架django实现py-faster-rcnn demo实例
操作系统.编程环境及其他: window7 cpu python2.7 pycharm5.0 django1.8x 说明:本blog是上一篇blog(http://www.cnblogs.co ...
- python web框架 django wsgi 理论
django wsgi python有个自带的wsgi模块 可以写自定义web框架 用wsgi在内部创建socket对象就可以了 自己只写处理函数就可以了django只是web框架 他也不负责写soc ...
- python web框架 django 工程 创建 目录介绍
# 创建Django工程django-admin startproject [工程名称] 默认创建django 项目都会自带这些东西 django setting 配置文件 django可以配置缓存 ...
- python web框架 Django基本操作
django 操作总结! django框架安装: cmd安装: pip3 install django pycharm安装: 在python变量下 搜索 django 安装 创建django项目: c ...
- python web框架Django入门
Django 简介 背景及介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以 ...
- Python Web框架——Django
返回顶部 使用框架简单快速开发特定的系统. pip freeze > requirements.txt pip install -r requirements.txt 一 MVC和MTV模式 二 ...
- python web框架Django——ORM
ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...
- python web框架 django 练习1 django 1.11版本
django练习 在我自己项目里创建一个xiaoliu的文件夹 里面创建s1.py 文件 s1.py文件 里面写各种函数 from django.shortcuts import HttpRespon ...
- python web框架 django工程的创建
安装 django pip3 install django pip install django 安装完后出现这两个文件 django-admin 用来创建文件夹 在script目录 执行这个命令 d ...
随机推荐
- 重置密码解决MySQL for Linux错误 ERROR 1045 (28000)
重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor ...
- 泛型学习第三天——C#读取数据库返回泛型集合 把DataSet类型转换为List<T>泛型集合
定义一个类: public class UserInfo { public System.Guid ID { get; set; } public string LoginName ...
- Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'company' in 'class java.lang.String'
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ' ...
- Linux嵌入式 -- 内核 (arm) & 文件系统
1. make distclean 2. 配置内核 ----> 生成 .config文件 make menuconfig ARCH=arm Makefile文件分析: 3. 编译内核 mak ...
- intellij idea build时出现Artifact contains illegal characters的解决
此处无法创建是因为Artifact的命名为大小写混合,将大写改为小写即可正常创建
- 判断一个浏览器是否支持opacity
支持opacity的浏览器,总会将opacity值规范成小于1.0且以0开头的值.例如,如果将opacity指定为:.5,原始支持opacity的浏览器就会将该值规范为0.5,而不支持opacity的 ...
- DEDE整站动态化或整站静态化设置方法
简单说下的是,网站空间小而数据库还可以的话,使用动态浏览也是不错的,但是官方的程序默认的生成静态浏览的,只要一发布文章,就会自动生成静态页面,难道做发布文章还要一个一个去更改其他的设置吗?麻烦.对于采 ...
- Tedis:淘宝的Redis的Java客户端开发包
Tedis:淘宝的Redis的Java客户端开发包 http://www.open-open.com/lib/view/open1389880631976.html Tedis Tedis是另 ...
- 任务1-1 了解Web基本概念
1.认识网页 从图中可以看到,网页主要由文字.图像和超链接等元素构成.当然,除了这些元素,网页中还可以包含音频.视频及Flash. 为了快速了解网页是如何形成的,接下来查看一下网页的源代码
- Java面试题上
1.面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些 ...