Django基础配置
安装django
pip install Django==1.11.4
进入python
import django
查看版本号django.get_version()
创建项目,在合适位置创建一个目录
进入你要创建项目的文件位置
创建一个项目project
django-admin startproject (项目名)project
tree 空格.空格/F //看目录下的树状层级
里面文件作用:
manage.py一个命令工具,可是使我们用多种方式对Django进行交互
_init_.py一个空文件,她告诉python这个目录可以看做一个包
settings.py项目的配置文件
url.py项目的URL声明
wsgi.py项目与WSGI兼容的web服务器入口
设计一下表结构
班级表(表名 grade,字段 (班级名称gname,成立时间gdate,女生总数ggirlnum,男生总数gboynum,是否删除isDelete)),
学生表 (表名 students,字段(姓名sname,性别sgender,年龄sage,简介scontend,所属班级sgrade,是否删除isDelete))
django默认使用Sqllite
在settings.py中配置,通过databases选项进行配置
配置MYSQL(python3.x安装pymysql,在_init_.py中写入俩行代码import pymysql
pymysql.install_as_MySQLdb())
配置settings.py中配置
创建应用:(一个项目里面可以创建多个应用,每个应用进行一种业务处理)
打开黑屏终端进入software_01下的
创建应用进入 输入例如:python manage.py startapp myApp 文件名
运行服务 python manage.py runserver
ctrl+c退出服务
在urls中配置url
将应用添加到settings中国的APPS中
每一个响应函数对应一个URL
url函数存放在urlpatterns列表中
migrations
数据移植迁移模块
admin.py
该应用后台管理机制
apps.py
该应用一些配置
models.py
数据模块
使用ORM框架
类似于MVC框架
test.py
自动化测试功能
填写脚本即可
views.py
视图
执行响应的代码所在模块
项目中大部分代码都在这里
生成数据库数据表
执行代码
Templates介绍(模板)
激活应用,在settings.py文件中将nyApp应用加入到INSERTLLED_APPS选项中
定义一个模型(有一个数据表就对应一个模型)
在model.py文件中定义模型(模型类要继承models.Model类)
不需要定义主键,
版本要对应,django2.0以上要对应mysql5.7以上的版本
在数据库中生成数据表
1.生成迁移文件(执行命令python manage.py makemigrations ),
2.执行迁移python manage.py migrate)
测试数据操作
1.进入到python shell中环境,
2.执行python manage.py shell
3,引入一些包
from myApp.models import Grades,Students
from django.utils import timezone
from datetime import*
通过模型操作
查询所有数据(类名.object.all())
添加数据:本质(创建一个模型类的对像实例)
对象
grade1=Grades(),
grade1.gname="python01",
grade1.gdate=datetime(year=2017,month=7,day=17),
grade1.ggirlnum=5,
grade1.gboynum=7,
grade1.save()
查看某个对象(类名.object.get(pk=2),
2.Grades.object.get(pk=2))
修改数据 grade2.gboynum=60,grade2.save()
删除数据 删除python05
关联对象 获得关联对象的集合(获取python04班级的所有学生),关联的类名小写_set.all()
需求:创建曾志伟属于python04班级如下
stu3=grade2.students_set.create(sname="曾志伟",sgender="男",sage=11,scontend="我是曾志伟")
启动服务器 python manage.py runserver ip:port(ip可以不写,表示是本机ip端口号默认是8000)
说明;这是一个python轻量级web服务器,仅仅在开发测试中使用
*1.Admin站点管理{内容发布(负责添加,删除,修改内容),公告访问}
2.配置admin应用
在settins.py中添加 'django.contrib.admin'(一般是默认的)
创建管理员用户:python manage.py createsuperuser,依次输入用户名,密码,邮箱
汉化: LANGUAGE_CODE = 'zh_Hans'
TIME_ZONE = 'Asia/Shanghai'修改这俩句就行
管理数据表:admin.py的文件
djang(from.models import Grades,Students
#注册
admin.site.register(Grades)
admin.site.register(Students))
自定义管理界面{
列表页属性
list_display = []//显示字段
list_filter = []//过滤字段
search_fields = []//搜索字段
list_per_page = []//分页
修改页属性
fields = []属性的先后顺序
fieldsets = []给数组分组
}
关联对象
class StudentsInfo(admin.TabularInline):
model = Students
extra = 2
要把这个类添加进去
class GradesAdmin(admin.ModelAdmin):
inlines = [StudentsInfo]
布尔值显示问题
执行动作的位置问题
使用装饰器完成注册
视图的基本使用:概念:在django中,视图对web的请求进行回应
1.视图就是一个python函数,在views.py中定义视图例如views.py里面
2.配置url:修改mytest目录下的urls.py文件,在myApp应用目录下创建一个urls.py文件,然后修改myApp应用下的urls.py,在引用views.py
模板的基本使用:概述:模板是html界面,可以根据视图中传递过来的数据进行填充
创建模板目录:模板的位置templates目录,在目录下创建对应项目的模板目录(mytest/templates/myApp)
配置模板路径:修改settings.py文件下的TEMPLATES 中的'DIRS': [os.path.join(BASE_DIR,'templates')],
定义grades.html和students.html,模板的语法1.{{输出值,可以是变量,也可以说对象属性}},2.{%执行代码段%}
访问http://127.0.0.1:8000/grades写grades.html模板
定义视图(函数)
配置url:url(r'^grades/$',views.grades),只是其中一个
https//127.0.0.1:8000/Students
1.写student.html模板
2.定义视图
3.配置url
点击班级,对应的所有学生
1.定义视图:写一个函数,对应其视图
2.配置url: url(r'^grades/(\d+)$',views.gradesStudents)
流程回顾:
1.创建项目:执行<django-admin startproject project>
2.创建应用:<python manage.py startapp myApp>
3.激活项目:修改settting.py中的INSTALLEd_APPS
4.配置数据库:
1.修改_init_.py文件
2.修改setting.py中的DATABESESS
5.创建模型类:在项目目录下的models.py文件中
6.生成迁移文件:python manage.py makemigrations
7.执行迁移文件:python manage.py migrate
8.创建管理员:python manage.py createsuperuser
9.创建模板目录/创建项目模板目录:
在settingspy文件中配置模板路径
如下:'DIRS': [os.path.join(BASE_DIR,'templates')],
11.在projec下修改urls.py
12.在项目目录下创建urls.py
13.
重新创建一个迁移文件
1.在settings.py中修改数据库名
2.在setting.py中修改数据库密码
3.删除迁移文件(在对应目录里鼠标右键删除)
4.在数据库中创建对应第一步的数据库
5.执行迁移文件
6。执行前一
7.启动服务
8.测试
二零一九年五月一号
ORM:概述:对象-关系-映射
任务:
1.根据对象的类型生成表结构
2.将对象列表的操作转换为sql语句
3.将sql语句查询的数据转换为对象、列表
优点:极大的减轻了开发人员的工作量,不需要面对一种操作因数据库的变更而修改代码
定义模型:模型、属性、表、字段之间的关系
(一个模型类在数据库中对应一张表,在模型类中定义的属性,对应该模型对照表的字段)
Django基础配置的更多相关文章
- django基础2: 路由配置系统,URLconf的正则字符串参数,命名空间模式,View(视图),Request对象,Response对象,JsonResponse对象,Template模板系统
Django基础二 request request这个参数1. 封装了所有跟请求相关的数据,是一个对象 2. 目前我们学过1. request.method GET,POST ...2. reques ...
- Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)
摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...
- Django基础学习七之如何配置django+mysql
很久没有更新博客了,也有段时间没有持续性的学习了,感觉堕落了,今天继续开始学习吧 今天主要来学习一下在django下配置mysql的数据库和使用admin用户管理数据库 1.在project中的set ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- Django 基础(一)
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能 ...
- 最优Django环境配置
2 最优Django环境配置 本章描述了我们认为对于中等和高级Django使用者来说最优的本地环境配置 2.1 统一使用相同的数据库引擎 一个常见的开发者错误是在本地开发环境中使用SQLite3,而在 ...
- Django 基础一(安装和启动)
在开始跟着本文学习Django进行Web开发之前你需要有一定的python编程基础,会用一些简单的Linux系统命令.如果你对python一无所知,请先去这个网站学习一下python编程的基础 Lin ...
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- Python学习(二十六)—— Django基础一
转载自:http://www.cnblogs.com/liwenzhou/p/8258992.html 一.Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的 ...
随机推荐
- linux C函数之strdup函数分析【转】
本文转载自:http://blog.csdn.net/tigerjibo/article/details/12784823 linux C函数之strdup函数分析 一.函数分析 1.函数原型: #i ...
- nodejs Yarn替代npm的包管理——快速、安全、可靠性高的依赖管理
Yarn能帮你解决的五件事 转自: http://www.qingpingshan.com/jb/javascript/185590.html 长话短说(TL;DR):在 JavaScript 领域有 ...
- CSS里面position:relative与position:absolute 区别
position:absolute这个是绝对定位:是相对于浏览器的定位.比如:position:absolute:left:20px;top:80px; 这个容器始终位于距离浏览器左20px,距离浏览 ...
- [Codeforces Round495A] Sonya and Hotels
[题目链接] https://codeforces.com/contest/1004/problem/A [算法] 直接按题意模拟即可 时间复杂度 :O(NlogN) [代码] #include< ...
- E20170630-ts
displacement n. 取代,替代; 免职,停职; [船] 排水量; [化] 置换;
- Java经典算法之选择排序(Select Sort)
思路:就是把所有数据项扫描一遍,挑出最小的那个和最左边的交换位置,即放到0位置.现在最左边的就是有序得了,不需要在交换位置,再次扫描数据时就是从1开始,还是寻找最小的和1交换位置,直到所有数据都是有序 ...
- yield from (python生成器)
#生成器中的yield from是干什么用的(一般多用于线程,协程那)def func(): # for i in 'AB': # yield i yield from 'AB' # 就相当于上面的f ...
- hihocode 编程练习赛17
1. f1 score 首先了解f1 score的计算方法, 我记得是学信息检索知道的, 然后简单处理就行. 由于我写的比较麻烦, 中间处理过程引入了一些除数为0的情况,导致错了很多次.其实是很简单的 ...
- 执行update, insert,delete 语句, 不返回结果集,(类型化参数)
/// <summary> /// 执行update, insert,delete 语句, 不返回结果集,(类型化参数) /// </summary> /// <para ...
- js加减乘除在线计算器代码
js加减乘除在线计算器代码 在线演示本地下载