您的位置:首页 > 编程语言 > Go语言

Django基础

2016-04-02 18:55 495 查看
一、安装

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

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

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

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

>>> import django
>>> django.VERSION
(1, 10, 0, u'alpha', 0)
>>>


View Code

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

  1、新建一个项目

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

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

    python D:\python27\Lib\site-packages\Django-1.10-py2.7.egg\django\bin\django-admin.py startproject mysite

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

    python D:\Program file\python27\Lib\site-packages\Django-1.10-py2.7.egg\django\bin\django-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)设置数据库:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}


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

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


    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    

from django.conf.urls import patterns, include, url
from django.conf.urls.defaults import *
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic.base import RedirectView
import views
urlpatterns = patterns('',
# url(r'^$', views.index),
url(r'^project_list', views.project_list),
url(r'^project_add', views.project_add),  # 点击添加项目
url(r'^project_edit', views.project_edit), # 点击编辑项目
url(r'^projectEditSave', views.projectEditSave), # 确定编辑
url(r'^project_delete', views.project_delete), # 删除项目
url(r'^projectAddSave/$', views.projectAddSave),
)


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

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

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

def project_list(request):
project_info=Project_info.objects.all().order_by('id').values()
# 项目列表
project_list=[]
if len(project_info)!=0:
for item in project_info:
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'])
project_list.append(item)
return render_to_response("pro_list.html",locals())


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

    pro_list.html : 相应的页面

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

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

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

class Project_info(models.Model):
id = models.AutoField(primary_key = True)
project_name=models.TextField()
project_desc=models.TextField()
project_type=models.TextField()
product_line=models.TextField()
product=models.TextField()
start_time=models.TextField()
class Meta:
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/,非常全面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: