python之django基础
看了不是同一期的视频,发现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基础的更多相关文章
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- python 之 Django 基础篇
1,Django流程介绍 MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据 ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- Python学习(二十六)—— Django基础一
转载自:http://www.cnblogs.com/liwenzhou/p/8258992.html 一.Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的 ...
- Python web 框架之 Django 基础搭建服务
1. 需要安装 Python 和 Django 环境,Python 环境的安装我就不在多说了 2. 安装框架 Django Django 安装,推荐先装个 pip吧,easyinstall也可以,然后 ...
- python 之 Django框架(服务器程序和应用程序、基础必备三件套及相关配置)
第十二章 Django框架 12.1 服务器程序和应用程序 服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发, ...
- 图解Python 【第十二篇】:Django 基础
本节内容一览表: Django基础:http://www.ziqiangxuetang.com/django/django-tutorial.html 一.Django简介 Django文件介绍:ht ...
- Django 基础教程
Django 基础教程 这是第一篇 Django 简介 » Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! 你一定可以学会,Django 很简单 ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
随机推荐
- Js原生封装选项卡组件
class MyTab extends HTMLElement{ //创建一个类名MyTab constructor(){ //构造函数 super(); //指向父类构造函数,必须要有的 const ...
- 雷林鹏分享:url中加号引发的错误
刚发现了博客的一个bug,标签页中一些标签带有空格,在url输出中使用了 urlencode 函数进行处理,导致空格被转换成了加号(+),这时通过url访问时会出现错误: 临时解决方法是在urlcod ...
- pgsql 服务遇见的问题记录
1.安装服务 命令 pg_ctl.exe register -N "pgsql" -D ../data 2.安装后启动失败的解决方式 2.1删除data文件夹下的postmaste ...
- 理解不为人知的ClassLoader
JAVA类装载方式,有两种: 1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中. 2.显式装载, 通过class.forname()等方法,显 ...
- react - next.js 设置body style
因为next.js可以用pages文件夹中的js文件进行route,所以不需要public文件夹和html,因此没有body tag. body自带8px的maigin,我想要给整个页面设置背景颜色, ...
- python之value和布尔值
之前做判断的时候如果遇到空列表,空字符串,可以直接使用当做判断条件.比如: s = "" if s: print(s) 不是打印s的,也就在这里if的判断条件是False. 所以, ...
- 设计模式之Factory模式(C++)
Factory模式具有两大重要的功能: (1).定义创建对象的接口,封装了对象的创建: (2).使具体化类工作延迟到了子类中. //Product.h #ifndef _PRODUCT_H_ #def ...
- 无服务器架构(Faas/Serverless)
摘要无服务器架构(Faas/Serverless),是软件架构领域的热门话题. AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serv ...
- _net之美 记录笔记
第一章: Valpoint vPoint1=new Valpoint(); Console.WriteLine(vPoint1.x); 1.=号左边ValPoint vPoint1,在线程上创建一个V ...
- [CodeChef-CAPTCITI]Snakes capturing the Mongoose Cities
Problem 每个点都可以选择降落士兵,然后当一个点的子节点被攻占的数量超过读入中的限制后,这个城市也被占领. 每个点降落士兵都有一定的代价,问把这一个图全部攻占的最小代价. Solution 这显 ...