django搭建简单开发项目流程(一)
1 搭建环境
sudo apt-get install python3-pip 安装pip3
sudo pip3 install virtualenv 安装虚拟环境
virtualenv -p python3 DjangoEnv 新建虚拟环境
source DjangoEnv/bin/activate 进入虚拟环境
pip freeze 查看安装列表
pip install django==1.11 安装django
配置python的解释路径
settings 配置
找到虚拟环境下python3解释路径,选择python3解释器
2 创建项目及数据库
create databases django 创建django数据库
django-admin startproject DjangoProject 创建项目名
manage.py
__init__.py
settings.py
urls.py
wsgi.py
templates
#在settings配置数据库
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'数据库名',
'USER':'用户名',
'PASSWORD':'用户密码'
'HOST':'数据库服务器IP',
}
}
#注:进入mysql中,添加账户密码: grant all on *.* to 'django'@'%' identified by '123456'
3 创建App运用并配置
#开启项目myApp
python manage.py startapp myApp
#配置app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.staticfiles',
'myApp'
]
4 设计model表结构
#一张表对应一个类,表的设计与关联直接关系到后续代码的质量
class Student(models.Model): #定义一个student模型
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
....
class Grades(models.Model):
sgender = models.BooleanField()
sage = models.IntegerField()
isDelete = models.BooleanField(default = False)
sgrade = models.ForeignKey('Grades') #年级一对多学生设置外键
5 执行迁移文件
python manage.py makemigrations APP名 生成迁移文件
python manage.py migrate App名 执行迁移文件
6 启动django服务器
python manage.py runserver 启动服务器
或者 python manage.py runserver 8080
#注意runserver开启之后进行下一项目记得及时关闭
#python manage.py runserver 0.0.0.0:8000 任何ip都能访问
7 对数据库简单的操作
#增加
创建对象:
grade1 = Grades()
添加数据:
grade1.gname = 'tom'
grade1.gdate = datetime(year = 2017,month=7,day=17)
grade1.ggirlnum = 3
grade1.gboynum = 50
保存数据:
grade1.save()
#删除
模型对象.delete()
grade2.delete()
#修改
模型对象.属性 = 新值
grade1.gboynum = 60
grade1.save() #保存
#查找
类.objects.all() 查看全部
类.objects.get(pk=n) 查看指定
类.objects.exclude(field=value) 排除指定
查询 Student.objects.[all,filter,get,exclude,last,first,latest](查询条件)
查询字段__[lt,gt,lte,gte,contains,isnull,in,endswith,startswith]
8 创建模板templates
#settings中修改TEMPLATES
DIRS = [os.path.join(BASEDIR,'templates')]
#设置对应的templates对应app的跳转html页面
9 app下添加子路由urls.py
#项目下的根路由
from django.conf.urls import url,include #导入urls中url与include
from django.contrib import admin #导入admin
urlpatterns = [
url(r'^admin/',admin.site.urls), #获取默认的admin首页
url(r'^firstApp/$',include('myApp.urls'))
#以firstApp作为匹配获取myApp新建的urls中新建首页
]
#应用下的子路由
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index), #当匹配为空时显示views中的index页面 hello django
url(r'^(\d+)/(\d+)',views.detail), #当匹配到类似/20/30时,显示views中detail函数
]
10 关联表查询
#ForeignKey 外键
一对多访问: 对象.模板类小写_set
grade.students_set.属性
多访问一: 对象.模板类小写.属性
Students.objects.get(pk=2).grades.gname
#OneToOne
用一对一访问被关联对象:
对象.被关联class小写
grade.students.sname
一对一反向查询:
对象名.关联对象类名小写.属性
students.grades.gname
#ManyToMany
多对多访问
对象.关联字段
多对多反向查询: manyTo many
对象.被关联对象class小写_set
当然上述过程只适合新手理清楚django整体的项目流程,实际开发以实际为准.
django搭建简单开发项目流程(一)的更多相关文章
- PyCharm社区版+Django搭建web开发环境-2
接上一篇:PyCharm社区版+Django搭建web开发环境-1 1. 创建好django项目并建立app应用:web 2. setting.py:配置app应用 INSTALLED_APPS = ...
- python +Django 搭建web开发环境初步,显示当前时间
1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是window ...
- 简单搭建iOS开发项目框架
今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做哪些东西各位跟着我一步一步来进行. 假 ...
- python关于Django搭建简单博客项目(详解一)
上一篇我们说了如何搭建简易博客网站,下面我们来进行详细解答.本文没有特定顺序,请结合上一篇和源代码参照学习. 相关源代码和解析请参看:https://github.com/Cheng0829/mysi ...
- python关于Django搭建简单博客项目(教程)
由于csdn各种django blog博文都有或多或少的bug,所以我决定自己写一篇,先附上教程,详解在另一篇博文里,为了便于大家复制粘贴,本文代码尽量不使用图片. 源代码及解析文章请在我的githu ...
- python关于Django搭建简单博客项目 详解二-setting.py
这一篇我们来讲解setting.py,具体内容以注释形式写入到下面的setting.py代码中,篇幅所限已把官方所给英文注释删除. 全部源代码和详解请参看http://github.com/Cheng ...
- java maven、springmvc、mybatis 搭建简单Web项目学习笔记
前言: 空余的时间,学学 Java,没准哪天用的到: 环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记: 一.安装文件及介绍 JDK:jdk1.8.0 77 eclipse-maven ...
- Python学习笔记24:Django搭建简单的博客站点(二)
上一节说道怎样使用Django创建并执行一个项目.这节说怎样加入一个博客应用. 一 项目跟应用的关系 在加入应用之前,先来看看项目与应用之间有什么不同之处呢? 项目是针对一个特定的 Web 站点相关的 ...
- PyCharm社区版+Django搭建web开发环境-1
PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行: 1. 创建项目:在cmd命令行下输入:django-admin startproject Demo ...
随机推荐
- 洛谷 P4317 花神的数论题(组合数)
题面 luogu 题解 组合数 枚举有多少个\(1\),求出有多少种数 扫描\(n\)的每一位\(1\), 强制选\(0\)然后组合数算一下有多少种方案 Code #include<bits/s ...
- HDU 6321 (状压dp)
题目大意:: 为给你n个点(n<=10,nn<=10,n) 初始时没有边相连 然后有m个操作(m<=30000m<=30000) 每次可以添加一条边或删除一条边 允许有重边 要 ...
- C# 检查键盘是否唤醒到桌面上显示
大概需要的win32函数 public static extern IntPtr FindWindow(string lpClassName, string lpWindowName)//返回值为具有 ...
- HDU - 2276 位运算矩阵快速幂
挺有意思的一道题 要会运用一些常见的位运算操作进行优化 题目的本质就是要求下面的式子 \(dp[i][j+1]=(dp[i-1][j]+dp[i][j]) \mod 2\) (第\(i\)个字符在\( ...
- UESTC - 1724 GCD区间求和
依然是神奇的欧拉函数 若GCD(n,i)=k 则GCD(n/k,i/k)=1, 令i/k=x,有GCD(n/k,x)=1, →k*GCD(n/k,x)=1中x的个数 = GCD(n,i)=k的和 范围 ...
- [转] 浏览器自动化测试初探:使用 phantomjs 与 casperjs
[From] https://www.qcloud.com/community/article/641602001489391648 作者:yangchunwen 首先要解释一下为什么叫浏览器自动化测 ...
- Git的深入理解与GitHub托管服务的使用
[转自] http://www.cnblogs.com/cocowool/archive/2012/02/17/2356125.html 源代码管理系统(SCM)与版本控制 版本控制是一种记录若干文件 ...
- windows同时安装python2和python3两个版本
1.安装python2 下载地址: https://www.python.org/downloads/windows/ 进入页面,下拉,64位系统要选择这个. 下载完成后,一直点击下一步,直到安装完毕 ...
- 转 禁用HAIP,cluster_interconnects配错了集群无法启动
简介: 在Oracle 11.2.0.2之前,私网的冗余一般是通过在OS上做网卡绑定(如Bond等)来实现的,从Oracle 11.2.0.2版本开始推出HAIP(Highly Available V ...
- (转)开发监控Linux 内存 Shell 脚本
原文:http://blog.csdn.net/timchen525/article/details/76474017 题场景: 开发Shell 脚本判断系统剩余内存的大小,如果低于100MB,就邮件 ...