Django项目流程
创建项目和应用
django-admin.py startproject project_name
cd project_name
python manage.py startapp app_name
添加 app_name 到 settings.py 中的 INSATLLED_APPS 中。
规划写models.py
示例:
from __future__ import unicode_literals from django.db import models
from django.utils.encoding import python_2_unicode_compatible @python_2_unicode_compatible
class Column(models.Model):
name = models.CharField('栏目名称', max_length=256)
slug = models.CharField('栏目网址', max_length=256, db_index=True)
intro = models.TextField('栏目简介', default='') def __str__(self):
return self.name class Meta:
verbose_name = '栏目'
verbose_name_plural = '栏目'
ordering = ['name'] # 按照哪个栏目排序 @python_2_unicode_compatible
class Article(models.Model):
column = models.ManyToManyField(Column, verbose_name='归属栏目') title = models.CharField('标题', max_length=256)
slug = models.CharField('网址', max_length=256, db_index=True) author = models.ForeignKey('auth.User', blank=True, null=True, verbose_name='作者')
content = models.TextField('内容', default='', blank=True) published = models.BooleanField('正式发布', default=True) def __str__(self):
return self.title class Meta:
verbose_name = '教程'
verbose_name_plural = '教程'
创建数据库
python manage.py makemigrations news
python manage.py migrate
更改models.py
对models.py进行更改后,更改字段数据库中没有,需要同步更改到数据库中。
python manage.py makemigrations news
后续操作:
You are trying to add a non-nullable field 'pub_date' to article without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
这段话的意思是 pub_date 字段没有默认值,而且非Null 那么
1) 指定一个一次性的值供更改数据库时使用。
2) 停止当前操作,在 models.py 中给定默认值,然后再来migrate。
我们选择第一个,输入 1
Select an option: 1
Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now()
>>> timezone.now()
Migrations for 'news':
0002_auto_20150728_1232.py:
- Add field pub_date to article
- Add field update_time to article
这样是生成了一个对表进行更改的 py 文件在 news/migrations 文件夹中,我们要执行更改
python manage.py migrate 或 python manage.py migrate news
创建脚本,导入数据到数据库中
示例:
'''
create some records for demo database
''' from minicms.wsgi import *
from news.models import Column, Article def main():
columns_urls = [
('体育新闻', 'sports'),
('社会新闻', 'society'),
('科技新闻', 'tech'),
] for column_name, url in columns_urls:
c = Column.objects.get_or_create(name=column_name, slug=url)[0] # 创建 10 篇新闻
for i in range(1, 11):
article = Article.objects.get_or_create(
title='{}_{}'.format(column_name, i),
slug='article_{}'.format(i),
content='新闻详细内容: {} {}'.format(column_name, i)
)[0] article.column.add(c) if __name__ == '__main__':
main()
print("Done!")
运行脚本 导入数据:
python create_demo_records.py
Django项目流程的更多相关文章
- linux部署django项目流程(全)
1.python3和python2共存配置 流程在下面网址中 https://www.cnblogs.com/vinic-xxm/p/11358894.html 2.安装依赖包 yum install ...
- 宝塔面板成功部署Django项目流程
宝塔面板部署Django项目完整流程 上线Django项目记录,超简单,避免无意义的踩坑! 第一步:安装python管理器 在宝塔在线面板安装“python项目管理器” 第二步:安装适配python版 ...
- 服务器上部署django项目流程?
1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前服务器IP或*,如: ALLOWED_HOSTS = ["*",] 然后将源码 ...
- BAE部署Django项目流程整理
1.首先在BAE上创建一个应用名称并付费2.把应用文件夹git到本地,此时文件夹会多出三个文件app.conf,favicon.ico,index.py3.在应用文件夹内创建本地项目:myblog,并 ...
- Django项目流程(摘抄整理)
1.操作环境 Windows 8.1 Django 1.9 Python 2.7.10 2.创建工程 在cmd中运行后面的所有命令:
- Django 创建项目流程
django 项目创建流程 1 创建项目 cmd django-admin startproject 项目名称 pycharm file -- new project -- Django -- 项目名 ...
- 腾讯云服务器部署 django项目整个流程
CentOS7下部署Django项目详细操作步骤 前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本, 接下来我们来看整个配置项目流程. 部署是基于:ce ...
- django搭建简单开发项目流程(一)
1 搭建环境 sudo apt-get install python3-pip 安装pip3 sudo pip3 install virtualenv 安装虚拟环境 virtualenv -p pyt ...
- Django 小实例S1 简易学生选课管理系统 1 项目流程梳理与数据库设计
Django 小实例S1 简易学生选课管理系统 第1章--项目流程梳理与数据库设计 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 项目流程梳理 ...
随机推荐
- tensorflow四维tensor的形状以及函数tf.argmax( )的笔记
关于tensorflow里多维数组(主要是四维)的组织形式之前一直没弄懂,最近遇到相关问题,算是搞清楚了一些东西,特别记下来,免得自己又遗忘了. 三维形式能很简单的脑补出来三维的形状,不再赘述. 之前 ...
- WEB下面路径的问题
web 中的 / 到底代表什么? 绝对路径-以Web站点根目录为参考基础的目录路径.之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的.相对路径-以引用文件之网页所在位置为参考 ...
- JS--数组和字典
一.JS数组 JavaScript中的数组类似于Python的列表 a = [11,22,33,44] 常见功能: obj.length 数组的大小 obj.push(ele) 尾部追加元素 obj ...
- Python 字符串前面加u,r,b的含义
1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...
- (转)Python中的generator详解
本文转自:http://www.cnblogs.com/xybaby/p/6322376.html 作者:xybaby 注:本文在原文基础上做了一点点修改,仅仅作为个人理解与记忆,建议直接查看原文. ...
- GO_09:GO语言基础之reflect反射
反射reflection 1. 反射可以大大的提高程序的灵活性,使得 interface{} 有更大的发挥余地 2. 反射使用 TypeOf 和 ValueOf 函数从接口中获取目标对象信息 3. 反 ...
- 转:AutoLayout中的Content Hugging 和 Content Compression Resistance
OS6中引入了AutoLayout,极大的方便了UI元素的布局,现在已经过去一年了,并且大部分设备的系统也已经升级到了iOS6,是时候要使用此项技术了. 在AutoLayout的学习中有两个概念官方文 ...
- Ubuntu 14.04安装和3556sdk环境配置
1.配置为固定ip: vi /etc/network/interfaces 最后添加 iface eth0 inet staticaddress 192.168.1.100netmask 255.25 ...
- 调用weka模拟实现 “主动学习“ 算法
主动学习: 主动学习的过程:需要分类器与标记专家进行交互.一个典型的过程: (1)基于少量已标记样本构建模型 (2)从未标记样本中选出信息量最大的样本,交给专家进行标记 (3)将这些样本与之前样本进行 ...
- Git之版本回退及回滚
应用场景 当开发某个项目时,会有多次提交记录,如A版本àB版本àC版本,假如目前处于C版本状态,我想回退到A版本,该如何操作:而当回退到A版本后,我又想回滚到B版本,又该如何操作,见下文分解!