使用virtualenv创建虚拟python环境

环境:Ubuntu
初始化环境
virtualenv,是使用python开发的一个创建虚拟环境的工具,源码官网地址:https://github.com/pypa/virtualenv
刚用到这个东西时,会联想到虚拟机和影子系统,不过相比于后两者,virtualenv更为便捷。不需要重启系统进入影子模式,也不需要启动虚拟机拖慢你的系统。你只需要通过命令创建一个虚拟环境,不用的时候通过命令退出,甚至删除,均可。
安装virtualenv
安装过程可能会报错,看我的另一篇文章https://blog.****.net/qq_39905917/article/details/88559077

sudo apt-get install python-virtualenv

创建并进入环境:mkvirtualenv env1
退出环境:deactivate
进入已存在的环境或者切换环境:workon env1或者env2
删除环境: rmvirtualenv env1
然后建立一个测试目录:
mkdir testvirtual
cd testvirtual
然后创建一个虚拟环境:virtualenv env1
env1下的目录如下:
使用virtualenv创建虚拟python环境
bin下的目录如下:
使用virtualenv创建虚拟python环境
cd切换到该env1的目录下,执行命令:source bin/activate
你会发现在shell提示符前面多了(env1)这个提示,这就说明你已经是在虚拟环境中,在这个里面你可以安装任意的python库,而不用担心会把系统自带的python库搞乱。
下载安装Danjo(~=表示安装指定版本的最新版,表示安装Django 1.11.x版本,x表示1.11版本的最新版的小版本号)

pip install django~=1.11

创建项目
在另外一个文件夹里创建项目跟目录

(env1) [email protected]:/home/wuyou/workspace# mkdir student_house

创建项目:

cd student_house && django-admin startproject student_sys

项目的目录结构如下:
使用virtualenv创建虚拟python环境
创建App
在创建好的manage.py创建一个App

python manage.py startapp student

现在目录如下:
使用virtualenv创建虚拟python环境
在Model层编写代码
在文件student_house/student_sys/student?models.py中编写如下代码

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Student(model.Model):
    SEX_ITEMS = [
            (1, '男'),
            (2, '女'),
            (0, '未知'),
    ]
    STATUS_ITEMS = [
            (0, '申请'),
            (1, '通过'),
            (2, '拒绝'),
    ]
    name=moddels.CharField(max_length=128,verbose_name="姓名")
    sex=models.IntegerField(choices=SEX_ITEMS,verbose_name="性别")
    profession=models.CharField(max_length=128,verbose_name="职业")
    email=models.EmailField(verbose_name="Email")
    qq=models.CharField(max_length=128,verbose_name="QQ")
    phone=models.CharField(max_length=128,verbose_name="电话")
    
    status=models.IntegerField(choices=STATUS_ITEMS,default=0,verbose_name="审核状态")
    created_time=models.DateTimeField(auto_now_add=True,editable=False,verbose_name="创建时间")
    
    def __str__(self):
        return '<student>: {}>'.format(self.name)
    
    class Meta:
        verbose_name=verbose_name_plural="学员信息"
            

编写admin.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from .models import Student
# Register your models here.
class StudentAdmin(admin.ModelAdmin):
    list_display=('id','name','sex','profession','email','qq','phone','status','created_time')
    list_filter=('sex','status','created_time')
    search_fields=('name','profession')
    fieldsets=(
            (None,{
                'field':(
                    'name',
                    ('sex','profession'),
                    ('email','qq','phone'),
                    'status',
                    )
                }),
    )       
    
    admin.site.register(Student,StudentAdmin)

Model和Admin界面就好了,接下来需要把student这个App放到settings.py(在workspace/student_house/student_sys/student_sys目录下)中,只需要修改INSTALLED_APPS的最后或者最前添加’student’即可

INSTALLED_APPS = [
    "student",
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

后台部分部署好了
在student_house/student_sys目录下创建表和超级用户。