zoukankan      html  css  js  c++  java
  • django开发之框架搭建

    搭建虚拟环境

    1.在桌面上创建虚拟环境:mkvirtualenv 虚拟环境名称

      python@ubuntu:~$ cd Desktop/
      python@ubuntu:~/Desktop$ mkvirtualenv h4  创建了一个名为h4的虚拟环境
    虚拟环境安装成功后,默认已经工作在h4中:(h4)python@ubuntu:~/Desktop$

    闲聊1:查看机器上已存在的虚拟环境
      python@ubuntu:~$ ll  回车后就能看到.virtualenvs/目录,所有虚拟环境都存在该目录下,可进入查看
    闲聊2:删除虚拟环境 rmvirtualenv 虚拟环境名称
      python@ubuntu:~/.virtualenvs$ rmvirtualenv h4
    闲聊3:退出虚拟环境 deactivate
      (h4)python@ubuntu:~/Desktop$ deactivate
    闲聊4:进入虚拟环境 workon 虚拟环境名称
      python@ubuntu:~/Desktop$ workon h4
    闲聊5:查看有哪些虚拟环境 workon 连续按2次空格键

    2.安装虚拟环境需要的包

    进入虚拟环境后,可以查看当前虚拟环境中安装了哪些包,使用命令:pip list
      (h4)python@ubuntu:~/Desktop$ pip list 

                    或者 pip freeze 查看带版本号
    安装Django:
      (h4)python@ubuntu:~/Desktop$ pip install django==1.8.2

    创建项目

    1.在桌面创建一个工程文件夹,须确保在虚拟环境下

      (h4)python@ubuntu:~/Desktop$ mkdir django_projects

    2.在工程文件下创建一个项目 test01

      (h4)python@ubuntu:~/Desktop/django_projects$ django-admin startproject test01

    创建应用

    在一个项目中可以创建一到多个应用,每个应用进行一种业务处理。

    在test01项目中创建一个名为booktest的应用
      (h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py startapp booktest

    构建MVT

    使用Pycharm工具打开django_projects工程。

    ①model层

    1.定义模型类
        打开booktest应用下的models.py文件,定义模型类。
            from django.db import models
            class BookInfo(models.Model):
                btitle = models.CharField(max_length=20)
                bpub_date = models.DateTimeField()
                def __str__(self):
                    return self.btitle.encode('utf-8')
    
            class HeroInfo(models.Model):
                hname = models.CharField(max_length=10)
                hgender = models.BooleanField()
                hcontent = models.CharField(max_length=1000)
                hbook = models.ForeignKey(BookInfo)
                def __str__(self):
                    return self.hname.encode('utf-8')
                
    2.生成数据表
        ①激活模型:打开test01应用下的settings.py文件,将booktest应用加入到installed_apps中。
            INSTALLED_APPS = (
                'django.contrib.admin',
                'django.contrib.auth',
                'django.contrib.contenttypes',
                'django.contrib.sessions',
                'django.contrib.messages',
                'django.contrib.staticfiles',
                'booktest',
            )
        
        ②生成迁移文件:根据模型类生成sql语句。
            (h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py makemigrations
                
        ③执行迁移:执行sql语句生成数据表。
            (h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py migrate
                
    扩展:管理站点——给数据表添加数据
        ①创建管理员
            (h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py createsuperuser
                按回车后根据提示提示输入用户名、邮箱、密码
        
        ②向admin注册booktest的模型:打开booktest/admin.py文件,注册模型
            from django.contrib import admin
            from models import *
            class HeroInfoInline(admin.TabularInline):
                model = HeroInfo
                extra = 2
            class BookInfoAdmin(admin.ModelAdmin):
                list_display = ['id','btitle','bpub_date']
                list_filter = ['btitle']
                search_fields = ['btitle']
                list_per_page = 10
                fieldsets = [
                    ('basic',{'fields': ['btitle']}),
                    ('more',{'fields': ['bpub_date']}),
                ]
                inlines = [HeroInfoInline]
                
            admin.site.register(BookInfo,BookInfoAdmin)
            admin.site.register(HeroInfo)
        
        ③开启服务器
            (h4)python@ubuntu:~/Desktop/django_projects/test01$ python manage.py runserver
    
        ④访问后台
            浏览器地址栏输入:127.0.0.1:8000/admin,输入上面创建的用户名、密码完成登录。
    

    view层

    1.定义视图
        打开booktest应用下的views.py文件,定义视图。
            # -*- coding: utf-8 -*-
            from django.shortcuts import render
            from django.http import *
            from .models import *
            def index(request):
                bookList = BookInfo.objects.all()
                context = {"list":bookList}
                return render(request,'booktest/index.html',context)
            def show(request,id):
                book = BookInfo.objects.get(pk=id)
                herolist = book.heroinfo_set.all()
                context = {'list':herolist}
                return render(request,'booktest/show.html',context)
            
    2.配置urlconf
        ①主urlconf,在test1/urls.py插入booktest,使主urlconf连接到booktest.urls模块
            from django.conf.urls import include, url
            from django.contrib import admin
            urlpatterns = [
                url(r'^admin/', include(admin.site.urls)),
                url(r'^',include('booktest.urls'))
            ]
            
        ②副urlconf,在booktest应用中添加一个urls.py文件,并配置相应的url。
            from django.conf.urls import url
            from . import views
            urlpatterns=[
                url(r'^$',views.index),
                url(r'^(d+)$',views.show)
            ]
    

    ③template层

    1.创建模板目录
        在test01项目目录下新建一个templates目录,再在该目录下新建一个与应用(booktest)同名的文件夹,在该文件夹下新建所需的页面文件
        
    2.修改settings.py文件,设置TEMPLATES的DIRS值
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
            
    3.在模板中访问视图传递的数据
        {{输出值,可以是变量,也可以是对象.属性}}
        {%执行代码段%}
  • 相关阅读:
    CORS详解
    JBoss 系列九十九:Rest WebService jBPM 6 集成演示样例
    atitit。浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结
    4G时代来临,运营商为谁搭台献唱?
    Pascal's Triangle II
    cocos2d-x 3.6版连连看载入资源
    SlidingMenu导入编译用法--Eclipse和IDEA
    【解决】hive动态添加partitions不能超过100的问题
    AngularJS clone directive 指令复制
    AndroidStudio文件夹结构视图讲解
  • 原文地址:https://www.cnblogs.com/yzls/p/9459333.html
Copyright © 2011-2022 走看看