• 我的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去返回一个字符串,将来我们会使用渲染模板的方式。

  • 相关阅读:
    占位
    提高班整风带给我的思考
    Servlet笔记
    CommandArgument传多个值
    asp.net中怎么判断request的一个值是否为空
    asp.net中cookie中文乱码的解决
    datatable的手工构造过程
    .net c#日期时间函数大全
    【转载】[.net程序员面试题]
    javascript自动生成表格行
  • 原文地址:https://www.cnblogs.com/liaozhichao/p/4906707.html
Copyright © 2020-2023  润新知