jilingxf的个人博客分享 http://blog.sciencenet.cn/u/jilingxf

博文

python学习笔记(1)——创建应用

已有 581 次阅读 2019-2-17 15:30 |个人分类:python|系统分类:科研笔记| python, django, web, python

创建应用的步骤

打开命令行 进入manage.py的同级目录
命令行输入:python manage.py startapp blog
添加应用名到sittings.py中的Installed_apps里
  • 首先确认文件夹

  • 命令行输入:python manage.py startapp blog

  • 添加应用名blog

应用app下的目录树

D:\CODE\MYBLOG\MYBLOG\BLOG

│ admin.py

│ apps.py

│ models.py

│ tests.py

│ views.py

 init.py

└─migrations

└─init__.py

migrations

数据迁移模块,有Django自动生成

admin.py

该应用的后台管理文件

app.py

当前应用的配置文件 Djan1.9以后生成

models.py

数据模块,使用ORM框架,类似于MVC结构的models

tests.py

自动化测试模块,编写自动化测试代码,

views.py

**执行的响应代码**,代码逻辑处理的主要地点,项目的主要编写区

创建第一个页面

  1. 编辑views.PY

    编辑blog.views

    每个响应对应一个函数,函数必须返回一个响应

    函数必须存在一个参数,一般约定为request

    每个相应(函数)对应一个URL

  2. 代码如下:

    from django.shortcuts import render
    
    from django.http import HttpResponse
    
    
    .# Create your views here.
    
    def index(request):
    
        return HttpResponse('hello word!')

说明

from django.http import HttpResponse 从django中引用HttpResponse函数
用def定义一个函数,作为请求返回hello word

2.编辑URLS.PY

    1. 每个URL都已url的形式写出来

    2. url函数放在urlpatterns列表中

    3. url函数三个参数:URL(正则),对应方法,名称


    from django.conf.urls import include, url
    from django.contrib import admin

    import blog.views as bv

    urlpatterns = (
        url(r'^index/',bv.index ),
        url(r'^admin/', admin.site.urls),
    )

说明

import blog.views as bv
引用blog下的views 命名为bv
url(r'^index/',bv.index ),
url 正则表达式为index,对应方法为blog内的view.py中的index。

浏览器访问时要加上正则表达式“index”,否则报错 http://localhost:8000/index/ 

3. 第二种配置URl的方法

  • 命令行输入:python manage.py startapp blog2

  • 添加应用名blog2   sitting.py 中 INSTALLED_APPS

  • INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
        'blog2'
    ]
  • 编辑代码


  • blog2.view.py

  •     from django.http import HttpResponse
    
    
        # Create your views here.
        def index(request):
            return HttpResponse('<h1>hello This is blog2!<h1>')
 在根urls.py中引入include
   

    在APP目录下创建urls.py文件 格式与根urls.py相同


    根urls.py中的url函数的第二个参数改为include(‘app名称.urls’)

注意

    根url.py针对APP配置的URL名称,是该APP所有URL的总路径
    配置URL时注意正则表达式结尾符号$和/
    在URLS.py中urlpatterns = (
            url(r'^$',views.index),
        )每一项url的配置都以英文“,”结尾
  • APP下的URLS.PY

        from django.conf.urls import url
        from . import views

        urlpatterns = (
            url(r'^$',views.index),
        )
  • 根目录下的URLS.PY

    from django.conf.urls import include, url
    from django.contrib import admin

    import blog.views as bv

    urlpatterns = (
        url(r'^index/',bv.index ),
        url(r'^admin/', admin.site.urls),
        url(r'^index2',include('blog2.urls')),
    )


    url(r'^index2',include('blog2.urls')),  是用第二种方法配置的,常用这种方法

自此项目的目录如下

    D:.
└─myblog
    │  db.sqlite3
    │  manage.py
    │
    ├─.idea
    │      encodings.xml
    │      misc.xml
    │      modules.xml
    │      myblog.iml
    │      workspace.xml
    │
    ├─blog
    │  │  admin.py
    │  │  apps.py
    │  │  models.py
    │  │  tests.py
    │  │  views.py
    │  │  __init__.py
    │  │
    │  ├─migrations
    │  │  │  __init__.py
    │  │  │
    │  │  └─__pycache__
    │  │          __init__.cpython-37.pyc
    │  │
    │  └─__pycache__
    │          admin.cpython-37.pyc
    │          models.cpython-37.pyc
    │          views.cpython-37.pyc
    │          __init__.cpython-37.pyc
    │
    ├─blog2
    │  │  admin.py
    │  │  apps.py
    │  │  models.py
    │  │  tests.py
    │  │  urls.py
    │  │  views.py
    │  │  __init__.py
    │  │
    │  ├─migrations
    │  │  │  __init__.py
    │  │  │
    │  │  └─__pycache__
    │  │          __init__.cpython-37.pyc
    │  │
    │  └─__pycache__
    │          admin.cpython-37.pyc
    │          models.cpython-37.pyc
    │          urls.cpython-37.pyc
    │          views.cpython-37.pyc
    │          __init__.cpython-37.pyc
    │
    └─myblog
        │  settings.py
        │  urls.py
        │  wsgi.py
        │  __init__.py
        │
        └─__pycache__
                settings.cpython-37.pyc
                urls.cpython-37.pyc
                wsgi.cpython-37.pyc
                __init__.cpython-37.pyc


得到的两个页面 http://localhost:8000/index/

 

http://localhost:8000/index2  

 




http://blog.sciencenet.cn/blog-853805-1162635.html

上一篇:[转载]office2016 64位安装时遇到提示有32位程序未卸载解决方案
下一篇:django render 字典值设置 报TTypeError 错误

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-7-20 17:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部