您的位置:首页 > 编程语言 > Go语言

Django的基础学习一:安装 创建项目(步骤详细)

2019-07-10 21:37 344 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_45388133/article/details/95367700

Django官网 https://www.djangoproject.com/

  • 3.创建应用(app)
  • 版本选择:

    1.3:上古版本
    1.8:三五年前版本
    1.11:第一代版本的最后一个中版本,最后一个支持python2的版本
    2.0以后 更完善的功能,仅支持python
    (LTS)long-term support 长期支持
    目前2.2.3(推荐)

    1.安装:

    pip install Django
    #安装最新版本
    pip install Django==2.2.3
    #安装指定版本==后边跟版本号

    报错:网络不好会报无合适版本或重试最大次数错误
    可以改变下载路径:
    改变路径为:https://mirrors.aliyun.com/pypi/simple/

    2.创建项目:

    1.查看Django的版本 python -m django --version

    如果安装了Django,您应该会看到安装的版本。如果不是,您将收到错误消息“没有名为django的模块”。

    安装django后会一并安装django-admin.exe的命令行工具
    1.cd到放项目的目录下
    2.

    diango-admin startproject[project name]

    2.从命令行cd进入要存储代码的目录,然后运行以下命令:

    cd E:/tutorial

    django-admin startproject mysite


    你就能在你的目录里看到:

    注意:
    你需要避免在内置Python或Django组件之后命名项目。特别是,这意味着你应该避免使用像django(这将与Django本身冲突)或test(与内置Python包冲突)这样的名称。
    创建项目时创造了一个与文件名同名的子文件和manage.py文件

    这些文件是:
    外部mysite/根目录只是项目的容器。它的名字对Django来说无关紧要; 你可以将它重命名为你喜欢的任何东西。
    manage.py:一个命令行实用程序,允许以各种方式与此Django项目进行交互。命令行工具,可以负责运行创建子模块的功能,跟Django-admin相似
    内部mysite.py是项目的实际Python包。它的名称是你需要用来导入其中任何内容的Python包名称(例如mysite.urls)。
    mysite/init.py:一个空文件,告诉Python该目录应该被视为Python包。
    mysite/urls.py:这个Django项目的URL声明; 你的Django支持的站点的“目录”。url路由,指向不同的视图函数
    mysite/wsgi.py:与WSGI兼容的Web服务器的入口点,用于为你的项目提供服务。通用网关接口 部署时用到
    mysite/settings.py 工程项目设置文件,数据库,时区,语言等,方便其他地方调用

    (2)运行测试服务器

    测试服务器性能低,不负责高并发,仅供单人开发访问用
    cd 项目文件夹下

    python manage.py runserver


    与平时python xxx.py 不同,manage.py 被第三方工具封装成了CLI命令行工具,后面renserver 是一个参数

    改变端口:

    默认情况下,该runserver命令在端口8000的内部IP上启动开发服务器。
    如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口8080上启动服务器:

    python manage.py runserver 8080

    如果要更改服务器的IP,请将其与端口一起传递。例如,要侦听所有可用的公共IP(如果你正在运行Vagrant或想要在网络上的其他计算机上展示你的工作,这很有用),请使用:
    python manage.py runserver 0:8000

    0是0.0.0.0的快捷方式。可以在runserver参考中找到开发服务器的完整文档。
    自动重装 runserver:
    开发服务器根据需要自动为每个请求重新加载Python代码。你无需重新启动服务器即可使代码更改生效。但是,某些操作(如添加文件)不会触发重新启动,因此在这些情况下必须重新启动服务器。

    3.创建应用(app)

    项目与应用的区别:应用程序是执行某些操作的Web应用程序 - 例如,Weblog系统,公共记录数据库或简单的轮询应用程序。项目是特定网站的配置和应用程序的集合。项目可以包含多个应用程序。一个应用程序可以在多个项目中。
    要创建应用程序,应该与manage.py 位于同一目录中并输入以下命令:

    python manage.py startapp pollsss
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190713143556653.pn
    就可以在目录中看到:

    project VS apps ,django项目里的app并不是我们平时所说的应用.一个项目,一个应用在project, django框架中的app是一个更小级别的划分,代表一个大模块.
    比如大型项目教育网站,权限,学生,教室,后台,每个大模块下有几十个页面功能.都写在一起脚本不太好维护,所以django小项目可以一个模块,大项目可以按逻辑分为多个app(子应用)

    (1)目录:

    app/migrations: 数据库迁移版本
    admin.py: 自带的后台配置文件,快捷实现表CRUD
    models.py: 定义数据库表结构
    tests.py: 单元测试
    views.py: 功能逻辑,渲染页面.

    修改文件自动重启,django debug开发模式自动重启服务

    (2)整体流程

    要在polsss目录中创建URL,请创建一个名为的文件urls.py

    并输入一下代码:

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

    下一步是将根URL指向polsss.urls模块。在 mysite/urls.py,添加导入django.urls.include并include()在urlpatterns列表中插入一个 ,
    mysite/urls.py

    from django.contrib import admin
    from django.urls import include, path
    urlpatterns = [
    path('polsss/', include('polsss.urls')),    # include 包含,包括
    path('admin/', admin.site.urls),]

    include()函数允许引用其他URL. 每当Django遇到时include(),它都会删除与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URL以进行进一步处理。include()是使即插即用的URL变得容易。
    何时使用 include()
    include()当包含其他URL模式时,应始终使用。 admin.site.urls是唯一的例外。

    现在已将index视图连接到URL。验证它使用以下命令:
    python manage.py runserver
    在浏览器中转到

    http:// 127.0.0.1:8000 / polsss /index/
    ,应该看到文本" Hello,world。",在index视图中定义的 。
    http://127.0.0.1:8000/polls/index/
    ------ip和端口------全局url子url*

    (3)报错

    1.启动服务UnicodeDecodeError:utf-8 can not
    原因 源代码gethostaddr() , Windows默认编码gbk,计算机名为中文会导致报错.解决:我的电脑右键属性修改计算机名为英文.
    2.404url找不到
    原因url配置错误.
    分析:观察报错url规则,看目录级,url正斜杠.
    一般情况下,url配置文件里的匹配规则正斜杠结尾
    3.套接字无权限操作

    path()函数传递了四个参数,两个必需: route和view,以及两个可选:kwargs,和name。
    path()参数:route
    route是一个包含URL模式的字符串。处理请求时,Django从第一个模式开始urlpatterns并沿着列表向下移动,将请求的URL与每个模式进行比较,直到找到匹配的模式。
    模式不搜索GET和POST参数或域名。例如,在请求中https://www.example.com/myapp/,URLconf将查找myapp/。在请求中https://www.example.com/myapp/?page=3,URL也会查找myapp/。
    path()参数:view
    当Django找到匹配模式时,它会调用指定的视图函数,并将HttpRequest对象作为第一个参数,并将路由中的任何“捕获”值作为关键字参数调用。
    path()参数:kwargs
    任意关键字参数可以在字典中传递到目标视图。
    path()参数:name
    命名的URL可以从Django的其他地方明确地引用它,特别是在模板中。此强大功能允许在只触摸单个文件的同时对项目的URL模式进行全局更改。

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: