一、安装环境

参考:

https://docs.djangoproject.com/zh-hans

https://www.runoob.com/django/django-install.html

https://docs.qq.com/doc/DSHlYb3JoYVlETXh4 (要登录 pa qq)

1.0 虚拟环境安装

参考:https://www.cnblogs.com/chenxi188/p/10700608.html

用于解决移植,多版本等问题

#第一步:安装环境支持[linux下在前加sudo] http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl
pip install virtualenv #第二步,先进入想要的保存环境目录位置,再新建虚拟环境
virtualenv scrapytest #第三步,进入虚拟环境的目录
#a.显示当前目录所有文件
dir
#b.进入刚建的目录
cd scrapytest
#c.进入脚本目录:
cd scripts #【第四步】:进入虚拟环境输入如下命令之后即可使用虚拟环境,它本质和正常环境没区别:
activate.bat # 【第五步】:退出虚拟环境
#a.先退出python
exit()
#b.退出虚拟环境(执行此文件)[linux下:进入bin目录 source deactivate]
deactivate.bat 第六步(同二步):创建需要指定python版本[系统默认是3.7,则创建2.7版]-p 表示版本
#最后的名称随便取
virtualenv -p C:\Python\python27\python.exe scrapypy2

1.1 安装django

pip install Django

#用国内源加速安装
pip install -i https://pypi.doubanio.com/simple/ django #[扩展知识]卸载django(不要用)[linux下在前加sudo]
pip uninstall django

二、创建django项目

进入我们想要放项目的目录(直接在指定目录右键+shift---此处打开命令提示符),输入如下命令,创建 Django 项目:

2.0创建项目语法

django-admin.py startproject project1

#或默认打开了文件django-admin.py则用如下命令
django-admin startproject project1

2.1 运行项目

运行项目:

cd project1  # 切换到我们创建的项目
$ python manage.py runserver
……
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

在浏览器打开网址:127.0.0.1:8000

即可看到发射的火箭效果。

2.2 在指定端口打开项目

运行命令说明: 0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

py manage.py runserver

#或指定商品运行
python manage.py runserver 0.0.0.0:8000

2.3 项目结构介绍

创建完成后我们可以查看下项目的目录结构:

$ cd project1
$ tree
#或 windows 显示所有文件要加 /f
tree /f
.
|-- project1
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py

2.4 项目目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

三、创建项目的应用(app)

3.0 创建应用语法:

整个项目是由一个个子应用组成的(应用:相当于建立一个子功能模块)。

py manage.py startapp app1

python mange.py startapp app1

3.0.1完成后,项目目录:

D:\a\django-app\project1>tree /f
卷 本地磁盘 的文件夹 PATH 列表
卷序列号为 18A9-EAFD
D:.
│ db.sqlite3
│ manage.py
├─app1
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ urls.py
│ │ views.py
│ │ __init__.py
│ │
│ ├─migrations

└─project1
│ asgi.py
│ settings.py
│ urls.py
│ wsgi.py
│ __init__.py

3.1 应用注册

  1. 一个应用创建完成后需要进行注册,才能使用它
  2. 建立应用和项目之间的联系,需要对应用进行注册:

    修改 \project1\project1\settings.py 中的INSTALLED_APPS配置项
# -*- coding: UTF-8 -*-
#因为加了中文所以头部要加上上面一行文字
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1', #要注册的应用,如果有文件夹则:[ 文件夹名.app1 ]
]

3.2 创建应用的第1个【视图】页面

1)在 project1/app1/view.py 文件,输入代码:

from django.http import HttpResponse

def index(request):
return HttpResponse("Hello world ! ")

注:视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象,hello world就是返回给浏览器显示的内容。

2)接着,添加并配置app1/urls.py



project1/app1/urls.py 文件代码:

from django.urls import path
from . import views urlpatterns=[
path('app1/',views.index),
]

或用url方法配置app1/urls.py路径【django3.x报错误】

from django.conf.urls import url
from booktest import views
# index
# index2
# index2/
# 在应用的urls文件中进行url配置的时候:
# 1.严格匹配开头和结尾
urlpatterns = [
# 通过url函数设置url路由配置项
url(r'^index$', views.index), # 建立/index和视图index之间的关系
url(r'^index2$', views.index2),
url(r'^books$', views.show_books), # 显示图书信息
url(r'^books/(\d+)$', views.detail), # 显示英雄信息
]

3)配置project1/urls.py

from django.contrib import admin
from django.urls import path,include urlpatterns = [
path('admin/', admin.site.urls),
path('',include('app1.urls')),
]

或用url方法配置project1/urls.py路径【django3.x报错误】

from django.conf.urls import include, url
from django.contrib import admin # 项目的urls文件
# index
# index2
# index2/
# aindex
urlpatterns = [
url(r'^admin/', include(admin.site.urls)), # 配置项目
url(r'^', include('booktest.urls')), # 包含booktest应用中的urls文件

4)效果:刷新localhost:8000/index页面显示

hello world !

3.3 path() 函数用法

Django path() 可以接收四个参数,分别是:

  1. 两个必选参数:route、view
  2. 两个可选参数:kwargs、name。

语法格式:

path(route, view, kwargs=None, name=None)

  1. route:字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  2. view:用于执行与正则表达式匹配的 URL 请求。
  3. kwargs:视图使用的字典类型的参数。
  4. name:用来反向获取 URL。

3.4 url()函数的用法【django3.x报错误】

配置的目的是让建立url和视图函数的对应关系。url配置项定义在urlpatterns的列表中,每一个配置项都调用url函数。

  • url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作。

配置url时,有两种语法格式:

  • url(正则表达式,视图函数名)
  • url(正则表达式,include(应用中的urls文件))

    工作中在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。

3.5 url()匹配的过程

在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写url和视图函数的对应关系。

当用户输入如http://127.0.0.1:8000/aindex时,去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串继续到应用的urls文件中进行正则匹配,匹配成功之后执行视图函数index,index视图函数返回内容hello python给浏览器来显示。

Django(一)基础:安装环境、创建项目、视图、创建一个项目的应用(app)的更多相关文章

  1. Vue Create 创建一个新项目 命令行创建和视图创建

    Vue Create 创建一个新项目 命令行创建和视图创建 开始之前 你可以先 >>:cd desktop[将安装目录切换到桌面] >>:vue -V :Vue CLI 3.0 ...

  2. Eclipse使当前项目依赖另一个项目

    实例说明 在Eclipse中可以创建多个项目实现不同的软件开发,也可以使用多个项目来开发单独的大型软件,每个项目负责单独的模块部门,这样可以使软件的模块分类更清晰,可以单独的维护每个模块部分.但是项目 ...

  3. eclipse中一个项目引用另一个项目的方法(申明:来源于网络)

    eclipse中一个项目引用另一个项目的方法(申明:来源于网络) 地址:http://blog.csdn.net/a942980741/article/details/39990699

  4. Android studio 一个项目引入另一个项目作为Libary

    1.在我们开发Android项目时,有时需要一个项目作为另一个项目的工具类的引用,这样就需要配置下,使得MyLibrary到MyApplication作为一个module. 我们直接截图上步骤: 1. ...

  5. Eclipse中一个项目调用另一个项目的资源

    如果一个项目A想要引用另一个项目B的资源的话,按照一下步骤进行设置: 右键点击项目A---->>>Build Path--->>>Configure Build P ...

  6. MyEclipse2016项目内复制一个项目,如何更改项目的访问路径

    在MyEclipse2010版本如果复制了一个项目,需要改项目的访问路径的话,可以选中项目右键,点开Properties,在顶部搜索web,就会出现如下内容,这是只需要在里面更改路径就可以了. 而在2 ...

  7. eclipse中一个项目引用另一个项目的方法

    我们在开发的时候,有时候需要把一个大的项目打散,尤其是现在微服务的架构很流行,一个大的项目往往被拆成很多小的项目,而有的项目作为公共工程被独立出来,比如有个工程专门提供各种Util工具类,有的工程专门 ...

  8. springBoot框架在idea中创建流程 同时存在一个项目中

    1.新建普通maven工程 2.在父级pom中按需修改 3.删除父级src目录 4.创建公共模块common,里面只有service接口和实体类 5.构建微服务模块,provider 6.引用Zook ...

  9. eclipse中一个项目引用另一个项目,运行报:java.lang.NoClassDefFoundError

    项目右击-properties-Java Build Path -Porjects-add.选中了某个项目. 项目用tomcat启动时,报错:java.lang.NoClassDefFoundErro ...

  10. Eclipse 构建Maven项目--普通web项目 复制另外一个项目的配置文件导致的问题

随机推荐

  1. Java 调用系统系统可执行文件

    public class Test { public static Map<String, String> executeCmd(String cmd) { Runtime rt = Ru ...

  2. 夯实Java基础(二十三)——Java8新特征之Stream API

    1.Stream简介 Java8中除了引入了好用的Lambda表达式.Date API之外,另外还有一大亮点就是Stream API了,也是最值得所有Java开发人员学习的一个知识点,因为它的功能非常 ...

  3. Intellij IDEA 快捷键 与 环境设置

    快捷键 Ctrl+Shift+F10,运行 Ctrl+Alt+O,导入包,自动修正 Ctrl+Alt+L,格式化代码 Ctrl+Y,删除一整行 Alt + Insert,生成get/set方法 Ctr ...

  4. Springboot + redis + 注解 + 拦截器来实现接口幂等性校验

    Springboot + redis + 注解 + 拦截器来实现接口幂等性校验   1. SpringBoot 整合篇 2. 手写一套迷你版HTTP服务器 3. 记住:永远不要在MySQL中使用UTF ...

  5. change事件和input事件的区别

    input事件: input事件在输入框输入的时候回实时响应并触发 change事件: change事件在input失去焦点才会考虑触发,它的缺点是无法实时响应.与blur事件有着相似的功能,但与bl ...

  6. redis队列与RabbitMQ队列区别

    消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递.消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消 ...

  7. 【剑指Offer面试编程题】题目1373:整数中1出现的次数--九度OJ

    题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他.问题是:求出1~13的整数中1出现的次数,并算出100~130 ...

  8. thinkphp5.1 源码阅读

    传送地址:https://github.com/cshaptx4869/tp5.1-code-read 包含: 自动加载 容器 配置文件 钩子 门面

  9. 微信二次分享的JSSDK的调用

    网页端微信的二次分享如果不调用分享的SDK,分享之后就不会带有标题.描述 .缩略图 微信分享SDK调用 引入 <script src="//res.wx.qq.com/open/js/ ...

  10. java程序员的就业指导(重点)

    想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内 ...