看了不是同一期的视频,发现9期老师线性引入的方式,讲得django更加易于理解掌握。

抱歉的是,笔记没有整理就发上来了。希望看到的人不要被我带偏。


1. 新建Django项目
命令行创建:
django-admin startproject mysite
pycharm创建:
1. File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe 2. 设置Django项目:
1. settings.py
1. 配置HTML文件存放的位置
2. 配置静态文件存放的位置
3. ''' 配置Django项目   settings.py文件 
  1. templates文件夹的位置
  2. 静态文件
    1. STATIC_URL --> 静态文件夹的别名(在HTML文件中用的)
    2. STATICFILES_DIRS --> 静态文件夹的真正路径
  3. 注释掉 csrf 相关的中间件
  4. Django项目连接的数据库信息
  5. python3 manage.py startapp crm 用来创建APP 4. Django WEB请求流程(简版)
  1. 启动Django项目,等待用户连接
  2. 浏览器在地址栏输入URL,来连接我的Django项目
  3. 在urls.py中 找 路径和函数的 对应关系
  4. 执行对应的函数
  5. 返回响应 5. views.py
    1. 专门用来定义处理请求的函数
      基本必备三件套 from django.shortcuts import HttpResponse, render, redirect
      1. HttpResponse("要返回的内容") --> 通常用于直接返回数据
      2. render(request, "html文件", {"k1": v1}) --> 返回一个HTML文件或者打开文件进行字符串替换
      3. redirect("URL") --> 告诉用户的浏览器去访问其他的URL
    2. request相关
      1. request.method --> 查看请求的方法
      2. request.POST --> 获取POST请求的数据
       6. ORM使用
1. 什么是ORM?
是一种编程的方法论(模型), 和语言无关.(其他的语言也有类似的实现.) 2. ORM的本质:
类 ---> 数据表
对象 ---> 数据行
属性 ---> 字段 按照规定的语法写,自动翻译成对应的SQL语句. 3. ORM的功能:
ORM操作数据表
ORM操作数据行 4. Django里ORM的使用:
1. 手动创建空数据库,不必建表 ( 本例:day62 )
2. 在settings.py里面,配置数据库的连接信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day62',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123456',
}
}
3. 在项目(项目名称,不是APP名称)下的 /__init__.py告诉Django用pymysql模块代替MySQLdb来连接MySQL数据库
import pymysql
pymysql.install_as_MySQLdb()
4. 在app/models.py里面定义类
# 出版社
class Publisher(models.Model):
id = models.AutoField(primary_key=True) # 自增的ID主键
# 创建一个varchar(64)的唯一的不为空的字段
name = models.CharField(max_length=64, null=False, unique=True)
5. 执行两个命令
1. python3 manage.py makemigrations --> 把models.py里面的更改记录到小本本上
2. python3 manage.py migrate --> 把更改翻译成SQL语句,去数据库执行
'''

直接从一个小项目“图书管理”结合,学习django. 顺便学习了一点 bootstrap3

依次是设置settings.py 连接数据库、创建APP后在models.py编写ORM,  在urls.py设置与函数的对应关系, 应用下的views.py中编写响应函数,在templates下面编写模板html文件。

启动服务,浏览器访问测试等。然后再不断增加、修改、循环往复,直到完成。

直接将project打包了。点此下载:django图书管理练习

# pip3 install django==1.11.13

### manage.py 文件及所有项目由命令生成。
# 与项目进行交互的命令行工具集的入口
# 项目管理器 python3 manage.py # 查看所有命令 # cmd命令行下: # D:\Python3>Django-admin startproject myblog # python3 manage.py runserver # 启动web服务 访问 http://localhost:8000/ 查看web服务是否可用 It worked! # python3 manage.py runserver 9999 # 也可以指定端口启动web服务 或 监听所有IP python3 manage.py runserver 0.0.0.0:8001 ## 子目录myblog是项目目录,不建议修改名称。 # wsgi.py # 即python服务器网关接口(python Web Server Gateway Interface)
# python应用与web服务器之间的接口 全程不会去改动它。 # urls.py # URL配置文件 项目中所有地址(页面)都需要我们自己去配置URL '''--------------------------------------------------------------------
settings.py # 整个项目最核心最重要的 总配置文件
包含了数据库、web应用、时间等各种配置
------------------------------------------------------------------------''' ### 使用 python3 manage.py startapp blog 创建 blog 应用
# 创建应用时避免和模块名冲突。
# 将应用 blog 加入项目的 settings中INSTALLED_APPS下
# 例如: 'blog.apps.BlogConfig',  
"""=========================================================================
如果使用pycharm创建django项目的话,可以在创建时同时创建应用,
且应用将自动加入 settings 中 INSTALLED_APPS 下
===========================================================================""" # blog 下的:
# migrations 数据迁移模块 涉及数据库操作 内容自动生成
# admin.py 该应用的后台管理系统配置
# apps.py 该应用的一些配置 django1.9以后自动生成
# models.py 数据模块 使用ORM框架 类似于MVC中的Models(模型)
# tests.py 自动化测试模块 django提供了自动化测试功能 在这里编写测试脚本 # ### views.py 执行响应的代码 代码逻辑处理的主要地点 项目中的大部分代码均在这里编写
#
'''''' # 编辑 blog.views
'''
每个响应对应一个函数,函数必须返回一个响应
函数必须存在一个参数,一般约定为request
每一个响应(函数)对应一个URL
''' # 编辑urls.py
'''
每个URL都以url的形式写出来
url函数放在urlpatterns列表中
url函数三个参数:URL(正则),对应方法,名称
''' '''
Models是什么?
通常,一个Model对应数据库的一张表,Django的models以 类 的形式表现,它包含了一些基本字段以及数据的一些行为。
ORM 对象关系映射(Object Relation Mapping) 实现了对象和数据库之间的映射。
隐藏了数据访问的细节,不需要编写SQL语句 编写Modles
在应用根目录下创建models.py, 引入models模块
创建类,继承models.Model 该类即是一张数据表
在类中创建字段 :
字段即类里的属性(变量)
attr = models.CharField(max_length=64)
官网:https://docs.djangoproject.com/en/1.11/ref/models/fields/ 生成数据表:
命令行进入manage.py所在目录
执行 python manage.py makemigrations [可选参数 app名]
再执行 python manage.py migrate
其实就是settings.py中的 INSTALLED_APPS 中的应用所对应的数据
如果没有指定主键,则django会自动加上id列,int型,主键,自动增长。 利用 python manage.py sqlmigrate 应用名 文件id 可查看SQL语句
python manage.py sqlmigrate blog 0001 查看数据库可用sqlite expert 或者 Navicat 页面呈现数据:
views.py中import models
article = models.Article.objects.get(pk=1)
return render(request,page,{"article":"article"})
前端步骤:
模板可直接使用对象以及对象的"."操作
{{article.title}} '''

如果linux环境,则:

"""
这个笔记不是9期的. CentOS6.5下安装pip
在已有python2.7的基础上:
. 下载setuptools及pip的源码包
> wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
> python ez_setup.py --insecure . 下载并安装pip
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9 --no-check-certificate tar zxvf pip-9.0..tar.gz
cd pip-9.0.
python setup.py install
后面安装django使用pip即可
"""

web框架的本质:

1. web框架的本质:
socket服务端 与 浏览器的通信
2. socket服务端功能划分:
a. 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... b. 根据用户访问不同的路径执行不同的函数 c. 从HTML读取出内容,并且完成字符串的替换 --> jinja2(模板语言) 3. Python中 Web框架的分类: 1. 按上面三个功能划分:
1. 框架自带a,b,c --> Tornado
2. 框架自带b和c,使用第三方的a --> Django
3. 框架自带b,使用第三方的a和c --> Flask
2. 按另一个维度来划分:
1. Django --> 大而全(你做一个网站能用到的它都有)
2. 其他 --> Flask 轻量级

python之django基础的更多相关文章

  1. python的django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

  2. python 之 Django 基础篇

    1,Django流程介绍 MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据 ...

  3. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  4. Python学习(二十六)—— Django基础一

    转载自:http://www.cnblogs.com/liwenzhou/p/8258992.html 一.Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的 ...

  5. Python web 框架之 Django 基础搭建服务

    1. 需要安装 Python 和 Django 环境,Python 环境的安装我就不在多说了 2. 安装框架 Django Django 安装,推荐先装个 pip吧,easyinstall也可以,然后 ...

  6. python 之 Django框架(服务器程序和应用程序、基础必备三件套及相关配置)

    第十二章 Django框架 12.1 服务器程序和应用程序 服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发, ...

  7. 图解Python 【第十二篇】:Django 基础

    本节内容一览表: Django基础:http://www.ziqiangxuetang.com/django/django-tutorial.html 一.Django简介 Django文件介绍:ht ...

  8. Django 基础教程

    Django 基础教程 这是第一篇 Django 简介 »  Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! 你一定可以学会,Django 很简单 ...

  9. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

随机推荐

  1. 关于python 的http 日常操作

    Http,互联网的基础 .net ,java(springboot),node.js,python 都能非常方便的实现http服务. 现在服务器后台跑着pytorch的模型,想着还是用python来处 ...

  2. Disable access to Windows Update

    Disable access to Windows Update If this policy setting is enabled, all Windows Update features are ...

  3. jquery tab切换

    首先引入jquery.js <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  4. Python连接MySQL数据库的多种方式

    上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器 ...

  5. Android测试(二)——adb常用命令

    连接设备: 安装应用包apk文件: adb install apk文件 卸载应用: adb uninstall 包名 将设备中的文件放到本地: adb pull 设备文件目录 本地文件目录 将本地文件 ...

  6. Google Analytics电子商务篇(Universal版)

    Google Analytics是一款用于统计分析网站流量.浏览行为,可用于衡量用户与您网站的互动情况的全新方式.最近刚接触不久,发现其功能真的十分强大,记录下电子商务配置方法.(新手,老鸟勿喷) G ...

  7. Spring教程笔记(2) IOC

    Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合.更优良的程序. 在Java开发中,Ioc意 ...

  8. Dubbo死磕之扩展点加载ExetnsionLoader

    dubbo的SPI机制与JDK的SPI机制对比        dubbo一款阿里一款开源的RPC框架,他本身是一款非常复杂的系统,我们主要针对里边的一些核心点来展开分析,其中duboo里的一种核心机制 ...

  9. 使用 ZipArchive 生成Zip文件备注

    近两日研究了Abp.io 中模板项目的生成原理,是从Github下载源码包,进行修改.替换,然后生成新的zip包提供下载. 项目内部使用了  这个包 Ionic.Zip  Version=" ...

  10. 原生Android 注意事项

    如果要访问 互联网上的json数据的话 就要在 该目录下添加 访问的权限: <uses-permission android:name="android.permission.INTE ...