zoukankan      html  css  js  c++  java
  • 第一个Django项目

    第一个Django项目

    Django是一个开放源代码的Python Web应用框架,采用了MVC的软件设计模式。

    使用Python的包管理工具pip或着easy_install可以方便的安装Django。在操作系统终端执行命令:
    pip install djangoeasy_install django

    Django项目结构##

    ProjectRootDir
    |-- ProjectDir
    |	|-- __init__.py
    |	|-- settings.py
    |	|-- urls.py
    |	|-- wsgi.py
    |-- AppDir
    |	|-- __init__.py
    |	|-- urls.py
    |   |-- models.py
    |   |-- views.py
    |	|-- apps.py
    |-- manage.py
    |--templates
    

    Django项目下可以包含多个Web App,每个App目录下都包含相应的.py文件

    • __init__.py: python包的标志

    • settings.py: 项目配置文件,保存了相应的配置变量

    • urls.py: 保存路由配置,将请求映射到相应的处理函数

    • wsgi.py: 兼容WSGI接口的Web服务器入口

    • manage.py: 对django-admin.py的封装,提供与项目的命令行交互

    • templates: 保存视图模板的目录

    创建Django项目

    如果你使用PyCharm Professional等IDE的话,它们都提供一键创建django项目的功能。

    django自带的管理工具django-admin.py同样提供了创建项目的功能。

    (1) 在django包安装目录下(如python/Lib/site-packages)/django/bin)下找到django-admin.py

    如果你找不到django-admin.py也没关系,代码就下面几行。

    只要django安装正确你可以自己建一个django-admin.py:

    #!/usr/bin/env python
    from django.core import management
    
    
    if __name__ == "__main__":
        management.execute_from_command_line()
    

    如果创建项目时出现编码问题(尤其是使用Python2的同学), 可以重写一下django-admin.py设置编码:

    #!/usr/bin/env python
    from django.core import management
    import sys
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    if __name__ == "__main__":
        management.execute_from_command_line()
    

    (2)建立Project

    执行python django-admin.py startproject <project-name>

    (3)建立App

    执行python django-admin.py startapp <app-name>

    然后将App目录移入Project。

    也可以在Project目录下执行python manage.py startapp <app-name>.

    在project目录下创建FirstDjango应用,并在settings.py的INSTALLED_APPS中添加应用名'FirstDjango'。

    编写视图函数

    在FirstDjango下创建一个view.py,并编写代码:

    from django.http import HttpResponse
    
    def sayHello(request):
        return HttpResponse('<p>Hello World</p>')
    

    视图函数接受HttpRequest封装对象,并以字符串的形式返回响应的html代码。

    配置路由

    urls.py文件中包含一个urlpatterns对象,在其中添加到sayHello的映射:

    from django.conf.urls import url
    from django.contrib import admin
    from FirstDjango.view import hello
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^hello/', hello)
    ]
    

    url接受接受一个Python正则字符串和一个函数对象作为参数,当匹配到对应的url时Django将会把HttpRequest和与正则表达式匹配的字符串传入函数对象。

    启动Web App

    在ProjectDir下调用命令python manage.py runserver 127.0.0.1:8080
    在127.0.0.1:8080启动调试服务器。

    System check identified no issues (0 silenced).
    March 06, 2016 - 14:28:17
    Django version 1.9.2, using settings 'FirstDjango.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    

    在新建APP后未做任何改动之前启动服务器可以看到

    在完成上述工作后访问127.0.0.1:8000/hello/

    项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入。只需重新发送请求(刷新),不需要重启服务器。

    配置/管理 Web应用

    django-admin.py是Django提供的命令行交互工具,每个工程拥有一个manage.py文件是对admin.py的封装,用于控制Web App。

    常用的命令有:

    • 启动开发服务器: python manage.py runserver <url>

    • 创建Project:django-admin.py startproject <project-name>

    • 创建Web APP:python manage.py startapp <app-name>

    • 同步数据库:python manage.py syncdb

    注意在Django1.7及以后版本中python manage.py syncdb已被移除。

    • 构建数据库迁移: python manage.py makemigrations

    • 迁移数据库: python manage.py migrate

    详情参见Django doc

  • 相关阅读:
    不写helloworld总觉得哪里似乎不对之javascript
    SQl中drop与truncate的区别
    对MarshalByRefObject的讲解(转自DuDu)
    “模态子窗体关闭后,父窗体也关闭”解决方案
    ENVI5.0 32位工具栏图标不显示解决办法
    HTML5的基础写法
    查询远程服务器数据
    javascript变量、作用域和内存问题
    javascript基本概念
    让应用程序具体相应权限
  • 原文地址:https://www.cnblogs.com/Finley/p/5255575.html
Copyright © 2011-2022 走看看