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 ...
随机推荐
- MITx: 6.00.1x Introduction to Computer Science and Programming Using Python Week 2: Simple Programs 4. Functions
ESTIMATED TIME TO COMPLETE: 18 minutes We can use the idea of bisection search to determine if a cha ...
- HDU - 3336 next运用+递推
题目的匹配应该也要看成一个文本串与另一个模式串的匹配过程 Text是以当前i结尾的后缀来匹配Pattern的前缀(非真) 这里的Pattern肯定是可以匹配成功的,直接由next来保证(next总是当 ...
- [转] CSS 选择器参考手册
[From] http://www.w3school.com.cn/cssref/css_selectors.asp CSS3 选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. ...
- Map接口常用实现类学习
HashMap 1.6的HashMap:数组加单向链表结构 最重要的内部类Entry,全类名是java.util.HashMap.Entry,是个静态类,实现了Map.Entry接口.HashMap. ...
- c语言实现队列的基本操作
话不多说,直接代码 #include"stdio.h" #include"stdlib.h" typedef struct QNode{ int date; s ...
- python 爬虫系列08-同步斗图一波
一波大图来袭 import requests from lxml import etree from urllib import request import os import re def par ...
- myeclipse更改后台代码不用重启tomcat的方法
myeclipse更改后台代码不用重启tomcat的方法 方法1:在WebRoot下的META-INF文件夹中新建一个名为context.xml文件,里面添加如下内容(要区分大小写): <C ...
- Angular4+NodeJs+MySQL 入门-06 接口配置
在上篇中说了怎么调用接口,这篇就来说说,接口配置吧. 后端是用NodeJS来写的,由于写后台(以前用的是C#语言)的时候,大部操作都在是对数据库表的增.删.改.查操作, 比如:根据查询出来的数据,然后 ...
- java Folder transform to Source Folder
右键文件夹然后选择Build Path ===>Use as Source Folder 里面的东西现在就可以编译了 然后想要让一个源码包变成一个文件夹的话: 只需要再次右键源码包==>选 ...
- nutz框架使用记录之Cnd.wrap
这是对Cnd.wrap 官方用法 , 直接硬编码 , [JAVA]List<Person> crowd = dao.query(Person.class, Cnd.wrap("n ...