zoukankan      html  css  js  c++  java
  • 我的django之旅(一)

    我的django之旅(一)

    标签(空格分隔):django web


    1.检验我们的python和django版本

    liao@spring ~ $ python --version
    Python 2.7.6
    

    (venv)liao@spring ~/PUBLIC/Django/Rango $ python -c "import django; print(django.get_version())"
    1.7


    2.创建一个django项目

    django-admin.py startproject (your project name)
    

    ps:注意,括号中的是我们的项目名称。
    通过这条语句,我们创建了一个项目,让我们看看里面都有些什么吧。一个和项目名一样的文件夹,一个名为manage.py(非常重要)的文件。在我们的开发和测试过程中,它将始终伴随我们。那么让它跑起来吧,我们已经创建了一个简单的django项目。

    python manage.py runserver
    

    很遗憾,我们将会看到一些错误提示,尽管我们已经能够运行了。
    点击测试吧!!!
    振奋人心,我们将会在浏览器上看到这个项目已经跑起来了,虽然什么都么有
    It worked!
    Congratulations on your first Django-powered page.

    不过还是有些错误等着我们解决
    You have unapplied migrations; your app may not work properly until they are applied.
    Run 'python manage.py migrate' to apply them.
    不过照着第二句话做就好了
    python manage.py migrate

    3.Application的概念

    app是django中非常重要的一个概念,每个应用负责完成一些特别的任务。一个项目之中可以有多个应用,本着不重复发明轮子的原则,一个好的应用可以被拿到其他django项目之中继续使用。

    python manage.py startapp app_name
    

    这时候就创建好了一个app,但是还没完。既然app是像插件一样的存在,那我们应该再项目中“注册”这个app。
    进入到我们的project目录,我们会看到如下的文件
    ├── init.py
    ├── init.pyc
    ├── settings.py
    ├── settings.pyc
    ├── urls.py
    ├── urls.pyc
    ├── wsgi.py
    └── wsgi.pyc
    打开settings.py文件,找到
    INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rango'
    )
    顾名思义,这是一个app的配置文件,在这个python元组的最后添加我们自己的app,比如我的就是rango

    4.创建视图

    进入我们的app目录
    .
    ├── admin.py
    ├── init.py
    ├── migrations
    │   └── init.py
    ├── models.py
    ├── tests.py
    └── views.py
    django还真是贴心,所有的文件都给我们创建好了,像是flask这种微框架,什么事都得亲力亲为。使用我们最喜爱的编辑器,sublime text3 来打开views.py
    ps:关于linuxmint下sublime text3的安装
    打开http://www.sublimetext.com/3,下载Ubuntu64bit那个,安装即可。

    添加如下代码

    from django.http import HttpResponse
    def index(request):
        return HttpResponse("Hello world!")
    

    虽然只短短三行代码,却是意味深长。
    第一行,从django.http中引入了HttpResponse,通常情况下它的功能是向页面传输信息,例如传送一个字符串。
    第二行,每个视图views.py都包含了许多的视图函数,这里我们只创建了一个index,当我们执行一个操作,点击一个url,提交一个表单等等,都会用到相应的视图函数,视图函数处理完成之后,在将数据返回到页面上。
    第三行,没什么说的,返回一个字符串到页面上。

    5.创建url

    何谓url,Uniform ResoureLocator:统一资源定位器。虽然我们创建了一个视图函数,
    但是如何调用他呢?这就需要用到url去mapping这个函数了

    (1)创建一个urls.py

    在我们的应用中新建文件urls.py

    from django.conf.urls import patterns,url
    from rango import views
    urlpatterns=patterns(' ',url(r'^$',views.index,name='index'))
    

    注意第三行,使用到了正则表达式,$表示匹配一个空字符串,(开头),$(结尾)
    ps:相较于flask使用修饰器作为路由,这个简直太麻烦。

    (2)修改项目中的urls.py

    每个应用都有一个urls.py文件,但是当我们的应用越来越多时,很有可能,我们会使用相同的url。就需要再项目的中urls.py中添加下面这行,将每个独立的应用的url区分开来

     url(r'^rango/', include('rango.urls'))
    

    这样的话,如果我们要访问rango这个应用中的url,就需要加上rango前缀,在我的机器上就是这样

    http://127.0.0.1:8000/rango
    

    不出意外,我们将会看到一个hello world 字符串。
    一个最最简单的django项目就此诞生了,除了没有连接数据库,没有使用模板,几乎囊括了django开发的基本流程。
    当然,如果服务停止了的话,要重启服务

    python manage.py runserver
    

    6.阶段总结,基本工作流程

    (1)新建django项目

    python django-admin.py startproject <name>
    

    (2)应用

    • 新建应用

        python manage.py startapp <appname>
      
    • 在项目的settings.py中添加我们的新app

    • 在urls.py文件中添加对于app的映射

    • 在我们的app文件夹中新建urls.py文件,添加对于视图函数的映射

    • 在veiws.py文件中添加视图函数,记得返回数据。现阶段我们使用HttpReponse去返回一个字符串,将来我们会使用渲染模板的方式。

  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/liaozhichao/p/4906707.html
Copyright © 2011-2022 走看看