zoukankan      html  css  js  c++  java
  • Django基础

    一、安装

      官方地址 https://www.djangoproject.com/download/

      最新版git地址 https://github.com/django/django

      如果安装了pip,可以直接用命令进行安装,也可以去下载最新版的Django包,进入目录,运行python setup.py install进行安装

      安装完测试一下是否安装成功  

    1 >>> import django
    2 >>> django.VERSION
    3 (1, 10, 0, u'alpha', 0)
    4 >>> 
    View Code

    二、项目启动以及各模块介绍

      1、新建一个项目

        进入你的目录,运行命令:python django-admin.py startproject mysite

      注意1:如果不行,则把django-admin.py的路径写上,是python的一个bug

        python D:python27Libsite-packagesDjango-1.10-py2.7.eggdjangoindjango-admin.py startproject mysite

      注意2:路径不要有空格,以下这种找不到

        python D:Program filepython27Libsite-packagesDjango-1.10-py2.7.eggdjangoindjango-admin.py startproject mysite

      注意3:尝试着加了环境变量,然而并没有用,还是得带路径

      2、启动服务

        进入mysite目录下,运行命令:python manage.py runserver

        在浏览器输入 http://127.0.0.1:8000/ 进入欢迎页面

      注意1:端口号默认8000,如果要修改端口号——python manage.py runserver 8080

      注意2:若要允许非本地访问—— python manage.py runserver 0.0.0.0:8000(端口号可自定义,本地网络中的其他计算机可访问)

      3、目录结构以及各个模块

        cmd下运行tree /f mysite即可查看mysite的目录结构

        

      (1)db.sqlite3 —— sqlite3数据库相关的,如果是用的mysql或者其他,可以不管

      (2)manage.py —— 启动服务器会首先调用这个文件,如上面python manage.py runserver这条命令

         这个文件本身不需要我们修改,但是这个文件包含这样一行代码,调用了settings文件

        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

      (3)settings.py——配置文件

       1)设置数据库:

    1 DATABASES = {
    2     'default': {
    3         'ENGINE': 'django.db.backends.sqlite3',
    4         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    5     }
    6 }

       自定义:包括引擎、数据库名称、用户名、密码、host地址、端口号

     1 DATABASES = {
     2     'default': {
     3         'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
     4         'NAME': 'ProjPro',                      # Or path to database file if using sqlite3.
     5         'USER': 'root',                      # Not used with sqlite3.
     6         'PASSWORD': '',                  # Not used with sqlite3.
     7         'HOST': '127.0.0.1',                      # Set to empty string for localhost. Not used with sqlite3.
     8         'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.
     9     }
    10 }

        2)设置根urls文件名称

          ROOT_URLCONF = 'mysite.urls'

        3)设置templates的目录位录,template目录下存放的是html文件,比如:   

          TEMPLATE_DIRS = ('/opt/Proj/ProjPortal/templates',)

        4)设置static的目录,如果有自定义的静态文件(image、js等):

          STATICFILES_DIRS = ('/opt/Proj/ProjPortal/static',)

      (4)__init__.py——每个目录下都要有一个此文件,文件可以空着,也可以写上一句__all__ = ['urls']
      (5)urls.py    

     1 from django.conf.urls import patterns, include, url
     2 from django.conf.urls.defaults import *
     3 from django.conf import settings
     4 from django.conf.urls.static import static
     5 from django.views.generic.base import RedirectView
     6 import views
     7 urlpatterns = patterns('',
     8     # url(r'^$', views.index),
     9     url(r'^project_list', views.project_list),
    10     url(r'^project_add', views.project_add),  # 点击添加项目
    11     url(r'^project_edit', views.project_edit), # 点击编辑项目
    12     url(r'^projectEditSave', views.projectEditSave), # 确定编辑
    13     url(r'^project_delete', views.project_delete), # 删除项目
    14     url(r'^projectAddSave/$', views.projectAddSave), 
    15 )

        这是我之前代码中的一个例子,views文件里是逻辑代码,这个urls文件是干嘛使的呢?根据url定位方法

        比如:url(r'^project_list', views.project_list),意思是如果url里含有project_list,那就去调用views类里的project_list方法进行处理

      (6)views.py —— 业务逻辑处理,在目录中新建一个views.py文件    

     1 def project_list(request):
     2     project_info=Project_info.objects.all().order_by('id').values() 
     4     # 项目列表
     5     project_list=[]
     6     if len(project_info)!=0:
     7         for item in project_info:
     8             temp=dict(id=item['id'],project_name=item['project_name'],project_desc=item['project_desc'],project_type=item['project_type'],product_line=item['product_line'],product=item['product'],start_time=item['start_time'])
     9             project_list.append(item)
    10     return render_to_response("pro_list.html",locals())

        上面是views文件当中的一个方法,作为业务处理层,就是把需要的数据返回给前端页面,最后一句,包含两个参数:

        pro_list.html : 相应的页面

        locals : 把这个方法中定义的所有变量传给前端页面,只要是这个方法的全局变量,全部都会传给前端,前端按需取用

      (7)models.py —— 数据抽象

        上述代码用到了一个Project_info,这个就是一个model,对应数据库中的一个表    

     1 class Project_info(models.Model):
     2     id = models.AutoField(primary_key = True)
     3     project_name=models.TextField()
     4     project_desc=models.TextField()
     5     project_type=models.TextField()
     6     product_line=models.TextField()
     7     product=models.TextField()
     8     start_time=models.TextField()
     9     class Meta:
    10         db_table=u'project_info'

        定义了一些字段,db_table=u'project_info' 指定了对应的数据库表

        views当中的一行代码:project_info=Project_info.objects.all().order_by('id').values() —— 从数据库的project_info表中拿出所有数据

      总结:

      1、新建项目 python django-admin.py startproject mysite
        2、定义urls、views、models 
      3、__init__.py
        4、settings.py
     
      推荐资料 http://docs.30c.org/djangobook2/,非常全面
  • 相关阅读:
    WebSocket
    Jedis工具类
    电脑突然没有声音了 右下角红叉叉,由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备。 (代码19)
    java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
    WCF中的数据契约(Continued)
    WCF中的服务契约
    搭建基于MOSS的团队解决方案01——Microsoft Office SharePoint 2007 Server快速入门(Continued)
    Silverlight 的发展之路
    Windows Workflow Foundation实验01——Windows Workflow Foundation快速入门(练习四)
    使用.NET平台工具操作Live Framework
  • 原文地址:https://www.cnblogs.com/naonaoling/p/5348032.html
Copyright © 2011-2022 走看看