zoukankan      html  css  js  c++  java
  • py库: django (web框架)

    http://www.imooc.com/learn/736  Python-走进Requests库

    http://www.imooc.com/learn/790  django入门与实践

    http://www.imooc.com/learn/753  python-web.py开发入门(先不看)

    https://www.imooc.com/learn/458  django初体检,本教程主要讲解Django基础入门知识

    http://www.yiibai.com/django/django_quick_start_first_step.html#article-start  Django快速入门  2018-1-26

    http://docs.30c.org/djangobook2/  django2.0文档

    https://docs.djangoproject.com/en/2.0/releases/2.0/django2.0文档


    环境:win7、python3.6.3、django2.0

    • django-admin  startproject   myproject  创建项目
    • cd  myproject
    • tree -f  (windows下看一下目录结构)
    • python manage.py   startapp  blog  创建应用
    • tree -f  (再看一下,已出现应用:blog)
    myproject
    │  db.sqlite3
    │  manage.py  # 管理项目:包括数据库建立、服务器运行、测试(manage.py是个大管家,做什么事情都要找它)
    │
    ├─blog        # (“应用”目录。 django中使用应用来分隔功能)
    │  │  admin.py   # admin相关                (此文件帮助您在管理界面中修改应用程序)
    │  │  apps.py    # 当前应用的一些配置(django1.9以后自动生成)
    │  │  models.py  # 定义数据库中的表              (存储所有的应用程序的模型)
    │  │  tests.py   # 测试相关                 (这是单元测试)
    │  │  views.py   # 响应用户请求,返回html页面        (这是应用程序视图)
    │  │  __init__.py
    │  │
    │  └─migrations
    │          __init__.py
    │
    └─myproject        # (“项目”目录)
        │  settings.py  # 配置文件:应用、中间件、数据库、静态目录
        │  urls.py      # URL映射配置文件:决定一个url访问被哪个程序
        │  wsgi.py      # python应用程序或框架和Web服务器之间接口(目前用不到。以后要放在公网用nginx了,再做配置)----WSGI(Python Web Server Gateway Interface)python服务器网关接口__init__.py
        │
        └─__pycache__
                settings.cpython-36.pyc
                urls.cpython-36.pyc
                wsgi.cpython-36.pyc
                __init__.cpython-36.pyc

    创建应用后,需要把应用添加进去。  

    C:Python3myprojectmyprojectsettings.py

    我们需要把它注册到myproject项目中,所以要更新 settings.py 文件的 INSTALLED_APPS 元组

    #settings.py 的 40行,添加  blog
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    ]

    另外,C:Python3myprojectmyprojectsettings.py的 26 行:  DEBUG = True  这是打开debug的开关

    凡是和wsgi有关的都不用动它。

    • python manage.py runserver  运行django 服务    http://localhost:8000/
    • 或:python manage.py runserver  8080          http://localhost:8080/
    • 或:python manage.py runserver 0.0.0.0:8080    http://0.0.0.0:8080/
    • python manage.py  shell    进入SHELL
    • python manage.py                   查看有哪些命令(最常用的:runserver启动服务器;migrate makemigrations做好一个model后用这两条更新数据库表;shell。这4条命令是最常用的)
    • python manage.py createsuperuser  创建超级用户
    • python manage.py runserver             http://127.0.0.1:8000/admin/   用刚刚创建的超级用户登录

    配置URL:

    第一种配置URL:

    C:Python3myprojectmyprojecturls.py 此文件配置以下内容:

    import blog.views as bv        # 可是为什么要这样写呢? 如果是z直接import blog,后面写 urlpatterns 怎么弄都不行。
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', bv.helloworld),    # 要这样写
        #url(r'blog/',bv.helloworld),    # 这样写也行
    ]

    C:Python3myprojectlogviews.py 此文件加入以下内容:

    from django.shortcuts import render
    from django.http import HttpResponse
    def helloworld(request):
        return HttpResponse('<html>hello111</html>')

    第二种配置URL:

    在根url.py中引入include

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

    根urls.py中url函数第二个参数改为 include('blog.urls')

    C:Python3myprojectmyprojecturls.py  根urls配置如下:

    from django.contrib import admin
    from django.conf.urls import url, include
    from django.urls import path
    
    urlpatterns = [
        url('admin/', admin.site.urls),
        url(r'blog/', include('blog.urls')),
    ]

    C:Python3myprojectlogurls.py  blog应用的urls配置如下:

    from django.conf.urls import url, include
    from . import views
    
    urlpatterns = [
        url(r'^$',views.index),        # 第一个参数是正则,所以用^开头,用$结尾,约束为是一个空字符串
        url(r'^hello/$',views.hello),     # 这里要注意一定要有 /
    ]

    Models介绍:

    ORM

    对象关系映射(Object Relation Mapping)

    实现了对象和数据库之间的映射

    隐藏了数据访问的细节,不需要编写SQL语句

    docs.djangoproject.com/en/1.10/ref/models/fields/  看官方文档

    • cd c:Python3myproject
    • python manage.py makemigrations  (参数 blog这个应用,如果不写参数的话,默认为生成该项目下所有应用的数据迁移)
    • python manage.py makemigrations  blog
    • python manage.py migrate
    • python manage.py sqlmigrate blog 0001

    (python默认使用的数据库是 sqlite3,所以项目下有db.sqlite3这个文件。推荐使用第三方软件“SQLite Expert Personal”打开sqlite3数据库)


    django概述:

    1、URL配置:建立URL和与响应函数之间的关系
    2、视图 Views:响应客户http请求,进行逻辑处理,返回给用户html页面
    3、模型 Models:描述我们服务器存储的数据(数据库的表)
    4、模板 templates: 用来生产html页面。返回给用户的html,是由数据(模型)和模板渲染出来的

    https://www.imooc.com/video/8912  (这是简介性质的教程)2017-12-8

    https://www.imooc.com/learn/790  继续看

    django模板和vue模板,语法冲突的问题

    使用verbatim标签解决冲突

    自Django1.5以来,加入了 {% verbatim myblock %} {% endverbatim myblock %}标签,被此标签包裹的代码将不会被Django的模板引擎渲染。这样以来,我们可以把带有{{ }} 的Vue代码放在 {% verbatim myblock %}标签里,如下所示:

    <div id="app">
    {% verbatim myblock %}
    {{ message }}
    {% endverbatim myblock %}
    </div>

    ...

  • 相关阅读:
    我异常-VS2012“System.AccessViolationException: 试图读取或写入保护内存。”
    JAVA学习笔记 -- JDBC及其应用
    创建Windows类别
    非递归二叉树遍历
    如何使用Maven创建web工程(详细步骤)
    HDOJ 3966 Aragorn&#39;s Story
    SQLServer-----SQLServer 2008 R2卸载
    hdu 4869 Turn the pokers
    MTK6572横屏的调试过程
    【MongoDB】Serveral common command of MongoDb
  • 原文地址:https://www.cnblogs.com/qq21270/p/7702990.html
Copyright © 2011-2022 走看看