04 - Django应用第一步
知识点
1) 创建项目命令
以及项目结构介绍
2) 创建应用程序命令
应用, 项目的区别
以及应用程序结构
3) 启动项目命令
4) URLs的编写
include()的使用
get发送参数的格式
url()的参数介绍
5) 最基本的视图函数的编写
1 创建项目
查看Django的版本
python -m django --version
创建项目命令为
django-admin startproject mysite
注意:
项目名不能和一些关键字重复, 如django或者test等
这个Python代码不要放在web服务器的文档根目录下, 因为这样容易被通过web查看到, 不够安全
创建之后的文件目录
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
对应的作用为
外部mysite/根目录: 只是一个项目的容器。它的名字与Django无关; 您可以将其重命名为任何您喜欢的内容
manage.py: 一个命令行实用程序,可以让您以各种方式与此Django项目进行交互
内部mysite/目录: 实际Python包。它的名字是您需要用于导入其中的任何内容的Python包名称(例如mysite.urls)
mysite/__init__.py: 一个空的文件,告诉Python这个目录应该被认为是一个Python包。
mysite/settings.py: 此Django项目的设置/配置。 Django设置会告诉你所有关于设置的工作原理。
mysite/urls.py: 该Django项目的URL声明; 您的Django动力网站的“目录”。
mysite/wsgi.py: WSGI兼容的Web服务器为您的项目提供服务的入口点。
2 运行服务器
python manage.py runserver
这是启动会绑定到
http://127.0.0.1:8000
指定端口
python manage.py runserver 8080
指定IP
python manage.py runserver 0:8000
其中0就是0.0.0.0的缩写, 表示监听所有公共的IP
注意:
一般的, 修改项目中的代码服务器会自动重启使得这个更改的代码生效(重启完毕能看到提示)
但是有的动作(例如: 添加文件)不会自动触发重新启动服务器, 这要注意
3 创建Polls app
项目(project): 特定网站的配置和应用程序的集合
应用程序(apps): An app is a Web application that does something
项目可以包含多个应用程序, 一个应用程序可以在多个项目中
可以通过命令来生成一个应用程序
一般地: 创建的应用程序可以放在任何位置, 但是由于放在顶级文件夹(外部mysite/根目录下)的时候更加方便导入, 一般不随意放置
创建应用程序命令
python manage.py startapp polls
得到的目录为
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
4 编写视图
polls/views.py
from django.http import HttpResponse def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
要是视图生效, 需要编写URLconf
因此在polls/ 下创建一个urls.py文件, 由此, 现有的结构为
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
polls/urls.py
from django.conf.urls import url
from polls import views urlpatterns = [
url(r'^$', views.index, name='index'),
]
然后需要修改 根URLconf(mysite/urls.py) 让它执行 当前编写的 polls/urls.py
mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
include()函数可以引用其他的URLconfs
注意:
the regular expressions for the include() function doesn’t have a $ (end-of-string match character) but rather a trailing slash
include()函数使得URLs的即插即用变得可行
官方强力推荐使用include()的方式来编写URLs, 当然自带的admin.site.urls是唯一的例外
5 url()的参数
url()可以接受4个参数
def url(regex, view, kwargs=None, name=None):
pass
其中regex和view是必选参数, kwargs和name是可选参数
1) url() argument: regex
该参数是用于匹配URLs的, Django会从上到下依次匹配这些正则表达式
当然, 匹配的时候会忽略域名和GET和POST的参数
https://www.example.com/myapp/
查找
/myapp/ https://www.example.com/myapp/?page=3
查找
/myapp/
get发送参数的格式为:
URL?参数名=参数值&参数名2=参数2值...
注意:
这些正则表达式会在第一次加载URLconf的时候编译, 一般来说速度都很快
但是这个正则匹配不要写的太过于复杂, 这样会影响性能
2) url() argument: view
当url满足正则表达式的时候, 就会调用对应的view函数
会传入两种参数
HttpResquest对象
正则表达式捕获的值
正则表达式捕获的值分为两种
简单捕获, 作为位置参数传递
命名捕获, 作为关键字参数传递
3) url()参数:kwargs
传递关键字参数传递给视图函数, 形式是字典
4) url() argument: name
命名该URL
通过这个名字, 可以在视图函数, 模板文件中获取该URL
04 - Django应用第一步的更多相关文章
- Django入门第一步:构建一个简单的Django项目
Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...
- Django第一步
对于一个web框架,掌握了三部分的内容,就可以说是迈出了第一步. 1. 准备开发环境 2. 创建一个工程,并运行 3. 开发hello world应用 1. 准备环境 首先应该是安装python和dj ...
- 第一步 django的下载安装
django是python众多web框架中比较有名的一个,以大包大揽功能俱全而著名.但作为重量级的web框架,难免性能上回有所损失,不过由于其封装了各种API,在开发的时候会便利许多.所以也是深受欢迎 ...
- Openstack(企业私有云)万里长征第一步——安装
一.前言 单位新进了十几台服务器,建了一个高标准的一体化机房,状似刘姥姥进大观园的我,从机房规划到企业私有云搭建一一重头学来,除了机房泥墙其他基本都涉猎到了. 从企业私有云这个名字就能看出这是多么复杂 ...
- 【3】Django创建第一个项目
天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是 ...
- django创建第一个子文件夹
1.首先安装python, 我安装了Python2.7的版本,安装在了D:\Python25\2.接着安装django,我下载了django 1.6的版本.3. 安装完了之后,打开cmd,然后可以检验 ...
- 零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)
原文:零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸) 本篇内容会教你如何使用笔刷.钢笔.渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要 ...
- NLPer入门指南 | 完美第一步
介绍 你对互联网上的大量文本数据着迷吗?你是否正在寻找处理这些文本数据的方法,但不确定从哪里开始?毕竟,机器识别的是数字,而不是我们语言中的字母.在机器学习中,这可能是一个棘手的问题. 那么,我们如何 ...
- 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...
随机推荐
- Android之——清理手机SD卡缓存
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47375595 眼下,市场上非常多Android手机软件都具有清理SD卡缓存的功能, ...
- Myecplise Tomcat 启动很慢
今天突然遇到一个问题,tomcat在Myecplse启动非常慢,直接用tomcat自带的start.bat启动很快,如果通过Myeclipse启动会发现项目一直在实例化,最后发现是因为加了断点调试,断 ...
- EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法
EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...
- 详解Maven项目利用java service wrapper将Java程序生成Windows服务
在项目的开发中,有时候需要将Java应用程序打包成Windows服务,我们就直接可以通过windows的服务来启动和关闭java程序了. 本博文将通过有两种方法实现该功能,手动创建法和Maven自动打 ...
- iOS使用正则匹配限制输入密码格式
1.代码实现"密码至少为9位,并需包含大写字母.小写字母.数字或特殊字符等三种" 返回0.1.2为格式不正确,返回4为密码格式正确 -(int)checkIsHaveNumAndL ...
- Python菜鸟之路:Python基础-模块
什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,分组的规则就是把实现了某个 ...
- H5 Video 去除 下载按钮 禁用右键
<style type="text/css"> video::-webkit-media-controls-enclosure { overflow:hidden; } ...
- IDEA报错: Invalid bound statement (not found): com.test.mapper.UserMapper.selectByPrimaryKey(转发:https://www.cnblogs.com/woshimrf/p/5138726.html)
学习mybatis的过程中,测试mapper自动代理的时候一直出错,在eclipse中可以正常运行,而同样的代码在idea中却无法成功.虽然可以继续调试,但心里总是纠结原因.百度了好久,终于找到一个合 ...
- Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法
AS下如何生成自定义的.jks签名文件, 以及如何生成数字签名 链接:http://www.cnblogs.com/smyhvae/p/4456420.html 链接:http://blog.csdn ...
- 第7条:用列表推导式来取代map和filter
核心知识点: 1.列表推导式要比内置的map和filter函数清晰,因为它无需额外编写lambda表达式. 2.列表推导式可以跳过输入列表中的某些元素,如果改用map来做,那就必须辅以filter方能 ...