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:\Python3\myproject\myproject\settings.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:\Python3\myproject\myproject\settings.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:\Python3\myproject\myproject\urls.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:\Python3\myproject\blog\views.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:\Python3\myproject\myproject\urls.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:\Python3\myproject\blog\urls.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:\Python3\myproject
- 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>
...
py库: django (web框架)的更多相关文章
- 教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...
- [oldboy-django][1初始django]web框架本质 + django框架 + ajax
web框架本质 浏览器(socket客户端) - 发送请求(ip和端口,url http://www.baidu.com:80/index/) - GET 请求头(数据请求行的url上: Http1. ...
- Django web框架篇:基础
对于web开发者来说,socket是基础.因为Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 对于真实开发中的python web程序来说,一般会分为两 ...
- 初识DJango——Web框架
一.Web框架 HTTP特点 1.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST.每种方法规定了客户与服务器联系的类型不同. 由于HTTP协议简单 ...
- Django:web框架本质
一,web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 1,自定义web框架 impo ...
- Linux(CentOS7)系统中部署Django web框架
1. 概述 部署django和vue架在逻辑上可以分为web层与数据库层:web前端通过实现了WSGI协议的模块对python代码进行解析,而python代码中则通过特定于数据库的操作接口对数据库进行 ...
- Django Web框架入门
一.Django介绍 Django是一个开放源代码的Web应用框架,由Python写成,采用了MVC的框架模式.Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以很 ...
- Django web框架 下载安装 简单项目搭建
什么是web应用? Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 应用程序有两种模式C/S.B/S.C/S是客 ...
- [py]彻底细究web框架的wsgi+逻辑处理模块
wsgi逻辑结构初探 参考: 这里图很精彩,wsgi写的不错 web框架 = wsgi+逻辑处理app 接收请求,返回对应的内容 python wsgiref实现了wsgi规范. from wsgir ...
- django——web框架简介
1.web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S.C/S是客户 ...
随机推荐
- MySQL Binlog解析
https://yq.aliyun.com/articles/238364?spm=5176.8067842.tagmain.52.73PjU3 摘要: 概述 MySQL的安装可以参考:Linux(C ...
- 1、Dreamweaver+php开发网站第一步
1.首先在appserv目录下的www中建立一个网站文件夹,例如test 2.在Dreamweaver中的站点下新建站点进行配置,其中站点选项和服务器选项都要配置. 3.然后在Dreamweaver中 ...
- 在windows server上配置java jdk后,可能要些时间生效。
特别是程序调用java写的bat脚本时.
- java线程大全一讲通
Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...
- VS项目平台的x86,x64,Any CPU以及Debug和Release
引用链接:https://blog.csdn.net/zuguangboy/article/details/51509670
- 关于“最小的K个数”问题
从一堆无序的数中(共n个数)找到最小的K个数,这也算是一道比较经典的题目了,关于这道题目的解法,一般有几种: 方法1:先对所有的数据进行排序,然后直接找出前K个数来,即最小的K个数.时间复杂度为O(N ...
- QT 5 初学1 多窗口切分-续
转载:omydocument 主窗口本身就带着菜单,工具栏,和状态栏,作为一个基本应用,这些都不用操心. 一个工具,需要把窗口切分成三部分,左边,右上,右下.左边显示选择的功能,右上是主窗口.右下作为 ...
- problem:vue之数据变更没有触发视图更新问题
前言: 数据变更之后,vue如何渲染dom? 实际场景: 更新数据之后,再设置滚动条的位置为什么设置无效? 为什么将隐藏的元素设置为显示状态之后,读取元素状态读取不到? 改变了对象/数组中的值,页面没 ...
- tomcat操作
一.启动 D:\tomcat8.5.9\bin\startup 或者 D:\tomcat8.5.9\bin\catalina start 关闭tomcat: D:\tomcat8.5.9\bin ...
- PAT 乙级 1064 朋友数(20) C++版
1064. 朋友数(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 如果两个整数各位数字的和是一样的,则被 ...