Python--Django学习笔记1
Django:The Web framework for perfectionists with deadlines
Django是一个Python语言开发的高级Web框架,采用MVC架构,通过配置可以快速构建Web应用程序。
①安装
pip install django
验证安装是否成功:

②创建项目
选择对应存放工程的目录,在终端或cmd中使用如下命令创建一个django项目:

创建成功后,在IDE中打开该项目,目录结构如下:

文件对应作用:
- __init__.py:指明该文件夹为Python中的包(package)
- settings.py:django的配置文件
- urls.py:django的URL声明配置文件
- wsgi.py:兼容WSGI的服务器入口点
- manage.py:django的启动文件
③启动项目
命令:

执行后会有如下提示:

这里提示有13个为提交的迁移,这里的迁移暂时可用忽略,后面会详细讲到。倒数第二行提示了,服务开启在127.0.0.1:8000这个地址,现在打开浏览器进行访问测试:

这里看到已经访问成功了,并且得到两个提示:
- 创建第一个app的命令为:python mannage.py startapp [app_label]
- 项目的DEBUG被打开了并且URL暂未配置
注意:如果要设置对应的运行端口,可用通过在启动命令后加上端口号实现,如在8888端口启动服务,则命令为:python manage.py runserver 8888
④创建一个app
这里的app对应的是项目中的某个模块,一个项目中可以有多个模块,而一个模块也可以属于多个项目。
创建一个blog模块,这里需要开启一个新的终端,因为刚刚的终端在运行服务器,命令如下:


执行完成后,项目路径下多了一个blog文件夹,并且自动创建了一个db.sqlite3的文件,先说这个db.sqlite3文件,其实这是一个数据库文件,这是django默认配置的数据库,打开settings.py文件中可以找到如下定义:

这部分的内容是可以改的,后面会详细介绍这部分。
接着再看blog文件夹:
- mirgations文件夹:生成迁移数据
- admin.py:model的注册文件
- models.py:model层创建文件
- tests.py:测试文件
- views.py:view层创建文件
⑤Hello World
这里使用创建的app,进行响应,并且返回"Hello world"。
修改views.py文件,创建index方法:
from django.http import HttpResponse def index(request):
return HttpResponse("Hello world from blog index")
接着在blog文件夹下面创建一个urls.py文件,并填入如下代码:
from django.conf.urls import url
from . import views urlpatterns = [
url(r'^$', views.index, name='index'),
]
这里声明了在blog这个模块中的url匹配规则,url方法的第一个参数是正则表达式,用于匹配,这里配置为空,第二个参数则是匹配成果后执行的方法,也就是分派给view。
接着在项目路径下django_blog文件夹下的urls.py中配置这个app的url匹配规则:
from django.conf.urls import url, include
from django.contrib import admin urlpatterns = [
url(r'^blog/', include('blog.urls')),
url(r'^admin/', admin.site.urls),
]
这里的通过include方法将模块中的urls.py中的规则引入,这里设计的思想很明显,就是方便我们对模块根路径的修改,并且使得模块之间耦合度极低,利于复用。
重启服务器,访问路径127.0.0.1:8000/blog:

第二篇将介绍model相关的内容。
Python--Django学习笔记1的更多相关文章
- python Django 学习笔记(一)—— Django安装
注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...
- python Django 学习笔记(二)—— 一个简单的网页
1,创建一个django项目 使用django-admin.py startproject MyDjangoSite 参考这里 2,建立视图 from django.http import HttpR ...
- Python——Django学习笔记
Django——一个封装好的神奇框架 若本文有任何内容错误,望各位大佬指出批评,并请直接联系作者修改,谢谢!小白学习不易. 一.简要模型 模型类操作数据表: python manage.py shel ...
- Python & Django 学习笔记
最近在学校Python和Django.在学习中遇到了种种的问题,对于一个新手来说,下面的问题可能都会遇到.希望能帮助到那些和我一样的人!!0.python-dev安装(ubuntu) apt-get ...
- python Django 学习笔记(五)—— Django admin自动管理界面
1,激活管理界面 修改settings.py MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.c ...
- python Django 学习笔记(六)—— 写一个简单blog做增删改练手
简单效果图 1,创建一个项目myblog 可参考这里 myblog/ manage.py myblog/ __init__.py settings.py urls.py wsgi.py 2,创建blo ...
- python Django 学习笔记(四)—— 使用MySQL数据库
1,下载安装MySQLdb类库 http://www.djangoproject.com/r/python-mysql/ 2,修改settings.py 配置数据属性 DATABASES = { 'd ...
- python Django 学习笔记(三)—— 模版的使用
模版基本介绍 模板是一个文本,用于分离文档的表现形式和内容. 模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签). 模板通常用于产生HTML,但是Django的模板也能产生任何 ...
- Python框架之Django学习笔记(十七)
Django框架之表单(续二) 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
随机推荐
- Node.js系列-express(下)
前言 距上次更新博客又两个月多了,这两个月内除了上班时间忙公司的项目外,下班后也没有闲着,做了点外包,有小程序的,管理端的项目.也可能那段时间做的外包项目也都比较急,所以晚上都搞到一点左右睡,严重的压 ...
- 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一orm篇【如EF般丝滑】typeorm介绍(8/8)
文章目录 前情概要 在使用nodejs开发过程中,刚好碰到需要做一个小工具,需要用到数据库存储功能.而我又比较懒,一个小功能不想搞一个nodejs项目,又搞一个后端项目.不如直接在nodejs里面把对 ...
- Kafka(分布式发布-订阅消息系统)工作流程说明
Kafka系统架构Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和 ...
- Centos 6.9下部署Oracle 11G数据库环境的操作记录
操作系统:Centos6.9(64Bit)Oracle:11g .11.2.0.4.0版本Ip地址:172.16.220.139 废话不多说了,下面记录安装过程:1)安装桌面环境 [root@vm01 ...
- 第七组团队项目——专业课程资源共享平台——需求分析&原型设计
一.项目目标.定位需求: (1)目标:在教师.学生之间建立一个综合的.全面的.快捷的.高效的免费课程和学习资源共享.交流与推荐的开放性平台,实现多维和动态的推荐与分类检索服务. (2)定位:学生与教师 ...
- 11-Python3从入门到实战—基础之生成器和迭代器
Python从入门到实战系列--目录 切片 Python提供切片(Slice)操作符用来获取列表.元组等数据中的部分元素:如,读取列表 list[m:n]:表示获取m-n区间的元素 list[m:n: ...
- 第八章Jdk代理 cglib代理
什么是代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这 ...
- Vue的filter属性
Vue.filter('sss',function(data){ //可以使用逻辑处理数据 data += '123'; return data*10; }) new Vue({ el:'#app', ...
- 用async/ await来发送异步
昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了. 先说一下async的用法,它作为一个 ...
- C++拷贝控制
一.拷贝控制操作 当定义一个类时,显示或隐式地指定了此类型的对象在拷贝.赋值和销毁时所执行的操作,通过三个特殊的成员函数来控制这些操作,分别是拷贝构造函数,赋值运算符和析构函数.拷贝构造函数定义了 ...