Django笔记02-创建项目

2018-07-25  本文已影响0人  fbckf

创建项目

搭建好了开发环境,包括python和django,所以,接下来就是动手写代码的时候了,那么先写一个hello world :)

创建Django项目

首先确保已经进入了虚拟环境

    #进入虚拟环境
    $ workon Blog
    #退出
    $ deactivate

创建博客项目

    #在工作目录中输入命令创建项目fbckf,生成的项目目录在当前目录下
    #django-admin 是Django用于管理的命令行工具
    $ django-admin startproject fbckf

项目结构

    #使用 tree 命令查看项目文件结构
    $ tree fbckf
    fbckf
    ├── manage.py
    └── fbckf
          ├── __init__.py
          ├── settings.py
          ├── urls.py
          └── wsgi.py

  django 项目结构中包括了 django 自动生成的文件和自己创建的文件

运行

    # Django 自带了一个小型的服务器,在 manage.py 同级目录中使用以下命令运行它
    $ python manage.py runserver
    
    #终端输出信息
    Performing system checks...

    System check identified no issues (0 silenced).
    
    You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    
    April 07, 2018 - 10:04:56
    Django version 2.0.4, using settings 'fbckf.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.

  输出信息中的警告可以先不理会,因为还没有进行数据库迁移


  在浏览器中出入地址:http://127.0.0.1:8000/ 访问项目页面


  默认是使用 8000 端口,可以使用python manage.py runserver 9000指定 9000 端口

创建应用

Django 项目中会有一个或多个应用程序来实现各种功能,也可以调用其他项目中的应用程序

    #创建应用程序
    $ python manage.py startapp blog
    #再次查看项目的结构
    $ tree fbckf
    fbckf
    ├── blog
    │   ├── admin.py
    │   ├── apps.py
    │   ├── __init__.py
    │   ├── migrations
    │   │   └── __init__.py
    │   ├── models.py
    │   ├── tests.py
    │   └── views.py
    ├── db.sqlite3
    ├── manage.py
    └── fbckf
        ├── __init__.py
        ├── __pycache__
        │   ├── __init__.cpython-35.pyc
        │   ├── settings.cpython-35.pyc
        │   ├── urls.cpython-35.pyc
        │   └── wsgi.cpython-35.pyc
        ├── settings.py
        ├── urls.py
        └── wsgi.py

项目目录发生了改变

创建了应用之后还需要在配置文件中注册这个应用

    # fbckf/settings.py
    ...
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        #在这里注册你的应用
        'blog',
    ]
    ...

服务器会根据请求的url,在urls.py中进行匹配,我们需要在该文件中写下url的匹配规制

    # fbckf/urls.py
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', include('blog.urls')),
    ]

应用中的urls.py

    # blog/urls.py
    # 因为要用到视图函数,所以要从当前目录导入views.py
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index')
    ]

匹配到url之后,会调用相应视图函数,之后视图会返回一个http响应

    #在blog/views.py中编写视图函数
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello world!")

运行

  再次运行服务器,并访问http://127.0.0.1:8000/blog就可以看到页面中的Hello world!

总结

上一篇 下一篇

猜你喜欢

热点阅读