精华内容
下载资源
问答
  • django2

    千次阅读 2017-05-09 19:49:12
    **url路由配置** 1.在app里面新建urls.py from django.conf.urls import url #从django配置路径 导入url urlpatterns = [ url(r'^$', views.index,... 2.在指向根URL配置app .urls模块,在主目录配置下 form django

    url路由配置

    1.在app里面新建urls.py
    

    from django.conf.urls import url #从django配置路径 导入url
    urlpatterns = [
    url(r’^$’, views.index, name=‘index’),
    ]
    2.在指向根URL配置app .urls模块,在主目录配置下
    form django.conf.urls.include(),url
    Urlpatterns = [
    Url(r’^polls/’,include(‘polls.urls’)), 这里指向app路径下的urls,而app下的urls 指向的是views 形成二级路由
    ]

    模型基本配置
    数据库设置:打开project /setting.py 。这是一个普通的模块,代表django的设置变量。
    默认情况下,配置使用SQLite。如果想使用其他的数据库:
    安装相应的数据库绑定并更改一下键项;

    DATABASES’default’
    ENGINE 要么’django.db.backends.sqlite3’ ‘django.db.backends.postgresql’ ‘django.db.backends.mysql’

    NAME 是数据库名字,例如sqlite,name应该是完整的绝对路径:
    Os.path.join(BASE_DIR,’db.sqlite3’)如果不是使用的sqlite3,那么需要配置user,password等相关信息。
    如果是使用的sqlite数据库,这里不需要创建任何文件,在需要的时候它会自动创建。
    如果是使用的其他数据库,在配置好时,需要测试是否允许创建数据库权限。
    顺便可以在settings.py 中把TIME_ZONE 设置本地时区。

    此外:INSTALLED_APPS 在文件中的最上面的设置。持有的该django的情况下激活的所有django的应用程序的名称。
    Django.contrib.admin - 管理员站点
    Django.contrib.auth - 一个认证系统
    Django.contrib.contenttypes - 用于内容类型的框架
    Django.contrib.sessions - 一个会话框架
    Django.contrib.messages - 一个消息框架
    Django.contrib.staticfiles - 一个用于管理静态文件的框架
    这些应用程序中的使用至少一个数据库表,我们在数据库中创建表之前,我们可以使用他们,在此之前,我们需要运行一下命令:
    Python mange.py migrate
    migrate 命令会在INSTALLED_APPS 设置和创建根据数据库设置任何必要的数据表 project/settings.py 文件,并随应用程序的数据库迁移
    创建模型:
    编辑app/models.py
    一般创建两个模式:Question 和Choice 一个question有一个问题和出版日期
    一个Choice有两个字段:选择的文本和投票统计。每一个选择都是相关联的一个问题。

    from django.db import models
    class Question(models.Model):
    Quertion_text = models.CharFiele(max_length = 200)
    Pub_data = models.DateTimeField(‘date published’)
    class Choice(models.model):
    Question = models.ForeignKey(Question,on_delete = models.CASCADE)
    choice_text = models.CharField(max_length = 200)
    Votes = models.IntegerField(defaule = 0)
    每一个模型由子类的一个类代表django.db.models.Model 每一个模型具有多个类的变量,其中每一个表示在模型数据库字段的
    每一个字由一个实例 field 类表示,CharField 字符字段和DateTimeFiele用于日期时间,这告诉django 每个字段的数据类型
    每个Field 实例的名称,可以使用这个值在python代码中,和数据库将使用它作为列名
    有些Field 类有必须的参数。如 CharField ,需要给一个max_length . 这不仅实适用于数据库模式,但在验证,我们很快会看到。
    一个Field也可以有不同的可选参数,在这种情况下 我们设置 default或 votes = 0
    最后,使用ForeignKey 注意定义的关系,告诉django 每个相关的选择是一个问题,django支持所有的常见的数据库关系:多对多,一对一
    激活模型
    那个小一点的模型代码给出了Django的很多信息。有了它,Django能够:
    创建一个数据库模式(为这个应用程序语句)CREATE TABLE
    创建访问一个python数据库访问API Question 和Choice对象
    但首先我们需要告诉我们的项目,项目的app 应用配置
    要在我们的项目中应用,我们需要添加一个引用其配置类的应用程序设置。在polls.apps.PollsConfig 编辑 app//settings.py:
    INSTALLED_APPS = [
    ‘polls.apps.PollsConfig’,
    ‘django.contrib.admin’,
    ‘django.contrib.auth’,
    ‘django.contrib.contenttypes’,
    ‘django.contrib.sessions’,
    ‘django.contrib.messages’,
    ‘django.contrib.staticfiles’,
    ]

    让django知道了polls 应用,我们运行:

    Python mange.py makeigrations polls
    
    会看到以下:
    Migrations for 'polls':
    

    polls/migrations/0001_initial.py:
    - Create model Choice
    - Create model Question
    - Add field question to choice

    • 配置model 模型

    App/model.py 
    
    From django.db import models
    Class Category(models.Model):
    	Name = models.CharField(max_length = 100)
    
    这是一个标准的python类,我们继承了models.Model类 类名为Category(分类),这个类具有一个属性name ,它是models.CharField 的一个实例,这样django就可以吧这个类翻译成数据库的鳄鱼发,在数据库里创建一个名为Category的表格,这个表格的一个列明为name ,还有一个列id 会自动帮我们创建。其规则就是一个python类对应一个数据库表格,类名即表明,类的属性对应着表格的列,属性名即列名。
    
    django要求我们必须继承models.Model 类,
    	Caregory 只需要创建一个简单的分类名name就可以了
    	CharField 指定了name的数据类型。
    	CharField 是字符型!
    	max_length 是制定最大长度,CharField 中这个max_length 是必填属性,当然django还有各种各样的类型,如时间 DateTimeField 、整数 InttegerField 等……
    
    
    数据表关联:
    		多对一关系: 使用django.db.models.ForeignKey.
    

    例如:一个手机只能属于一个人,但是一个人可以有很多个手机
    参数:ForeignKey 需要一个位置参数:模型相关的类
    如:

    From django.db import models 
    #先定义一个类,继承至模型
    class new_ForeignKey(models.Model):
    Pass...
    
    class car(models.Model):
    Name = models.ForeignKey(new_ForeignKty);
    多对多关系: 使用django.db.models.ManyToManyField.
    比如:一个人有很多的爱好,这个爱好也有很多人有。
    from django.db import models
    class Hobby(models.Model):
    Pass..
    class Person (models.Model):
    #这个人具有很多的爱好
    hob = models.ManyToManyField(Hobby)
    

    读取sqlite 数据

    1.views.py import models
    2.Article = models.Article.object.get(id= 1)   取第一条id的数据
    3.Render(request,page,{‘from’:atticle})  需要穿什么数据自行传送
    Admin
    Admin是django自带的自动化数据管理界面
    配置admin
    Django已经自动创建好了admin,我们只需要创建
    Python manage.py createsuperuser  
    输入电子邮箱
    输入密码
    重复密码
    然后就可以在环境里面的admin界面里面登录了
    修改admin界面为中文:settings.py  LANGUAGE_CODE = ‘ZH_Hans’
    然后在admin.py import model或者(里面的模型)
    编辑 admin.site.register(Models.Article)
    

    修改数据,在admin界面修改

    修改数据默认显示名称
    在models下表实例添加一个方法

    根据版本选择 _str_(self): return self.title 或者 _unicode_(self):return self.title
    
    
    
    {% xx in arr %}
    <li>{{xx.title}}</li>
    {% endfor %} 
    
    配置子页面:
    Views 添加子页面处理函数
    def ziyemian(request,blog_id):
    Article = models.Blogmain.objects.get(pk=blog_id)
    Return render(request,’blog.html’,article)
    Urls 添加url配置 url(r’^blog/(?P<article_id>[0-9]+)$’,view.ziyemian)
    
    然后地址栏http://127.0.0.1/8000/blog/1  就可以请求到数据表文章id是1的数据了
    
    超链接配置
    Url 模板 {%	url ‘app_name:url_name’  param	%}  
    app_name:appname:  都在url中配置
    两种方式
    1根urls ,include()的第二个参数,namaspace = ‘blog’
    根目录下 includ的第二个参数  namespace = ‘blog’
    
    2 应用下写在url()的第三个参数位置 name = ‘article’ 
    在url的第三个参数 name = ‘page’
    主要取决于是否使用了include 配置另外一个urls配置
    
    展开全文
  • Django2与Django3之间的不同

    千次阅读 2020-02-15 15:41:21
    最近在复现别人django的一个电商系统项目,他用的是django2,而我使用的是django3。在调试的过程中,由于这两个版本之间某些语法或者是要求的不同,出现了很多bug。 从现在开始,这篇博文会写一些我在探索过程中对...

    最近在复现别人django的一个电商系统项目,他用的是django2,而我使用的是django3。在调试的过程中,由于这两个版本之间某些语法或者是要求的不同,出现了很多bug。

    从现在开始,这篇博文会写一些我在探索过程中对django2和django3不同点的总结。

    一、url()与path()

    *url()path()*都是用于实例化urlpatterns的函数。url()是在django1、django2中使用,并且在API文档中明确指出,在将来的版本中可能不推荐使用,他还有一个别名为re_path()path()是django3中使用的函数,是url()的替代品。

    首先需要知道几个问题:

    1、urlpatterns是url配置URLconf中的一个列表,网站生成的请求会遍历urlpartterns寻找匹配的链接,遇到第一个会停下来。然后调用对应的view函数,返回对应的页面。

    2、URLconf指的是默认生成的urls.py文件,在项目初始化(startproject)和应用初始化(startapp)时分别生成。

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

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHIi2O9B-1581751270259)(https://i.loli.net/2020/02/15/Tjc9J8P25EiA3eC.png)]

      path()函数返回要包含在urlpatterns中的元素。

      route参数应该是一个字符串,包含了一个URL模式。该字符串可能包含尖括号(eg:< username >),以捕获URL的一部分并将其作为关键字参数发送到view。尖括号可包含转换器规范(eg:< int:year >),该规范限制了匹配的字符,还可以更改传递给视图的变量的类型。例如,< int : year>匹配一串十进制数字并将该值转换为int。

      view参数是一个视图函数或是结果为基于类的视图的as_view()。它也可以是一个django.urls.include()

      include()函数是在调用项目中应用的URLconf(也就是对应应用下的urls.py文件)。

      kwargs参数可以将其他参数以字典的形式传递给视图函数。route参数中匹配的关键字、转换器规范转换的匹配字符都是通过kwargs参数来传递。这个参数不是关键参数,可以忽略。

      name参数可以给这个url取一个合适的名字。通过给url取名字,以后在view或者模板中使用这个url,就只需要通过这个名字就可以了。这样做的原因是防止url更改,会导致其他用了这个url的地方都需要更改,但是如果取名字了,就不要做任何改动了。这个参数不是关键参数,可以忽略。

      附:在python编码中,使用 url = reverse(name) 进行查找 name 对应的url,然后可以用 redirect(url) 进行重定向。

    • re_path(route, view, kwargs=None, name=None) / url(route, view, kwargs=None, name=None)

      url()函数也是返回要包含在urlpatterns中的元素。

      其中view、kwargs、name参数与path的用法相同,不同点在于route参数的使用。

      route参数是一个字符串参数,包含与Python的兼容的正则表达式 re 模块。字符串通常使用原始字符串语法(r''),以便它们可以包含类似\d的序列,而无需用另一个反斜杠转义反斜杠。进行匹配时,将从正则表达式中捕获的组传递给视图-如果组已命名,则作为命名参数,否则传递为位置参数。这些值将作为字符串传递,而不进行任何类型转换。这样就导致需要掌握正则表达式这个前导知识。

    二、{% load staticfiles %}与{% load static %}

    这两个都是在html文件中的语句,具体的语法我不了解,但我认为应该是加载静态文件目录的语句。当我使用{% load staticfiles %}的时候,网页会出现错误:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PHoSI3V6-1581751270260)(https://i.loli.net/2020/02/15/Xm1unhlTbUwS9qs.png)]

    百度后得知,这是由于{% load staticfiles %}是django2.1就已经被弃用(不建议使用),并且在django3中直接移除,所以才会出现这样的错误。只需要将它改成{% load static %}就可以。

    同样的,

    {% load staticfiles %}
    {% load static from staticfiles %}
    {% load admin_static %}
    

    也是相同的情况,不能在django3中使用,都需要将他们替换成{% load static %}

    展开全文
  • Django2 Xadmin的配置

    2018-05-08 19:29:29
    xadmin是对Django中admin的增强,目前对Django2的支持还不是很到位,所以在使用Django2的时候,可以通过以下配置来对Django xadmin来完成部署。这里有一个github上的xadmin下载地址:...

    xadmin是对Django中admin的增强,目前对Django2的支持还不是很到位,所以在使用Django2的时候,可以通过以下配置来对Django xadmin来完成部署。

    这里有一个github上的xadmin下载地址:https://github.com/sshwsfc/xadmin/tree/django2

    可以看到xadmin是支持pip的,所以执行:

    pip install git+git://github.com/sshwsfc/xadmin.git@django2

    下载完后可以通过pip list查看是否安装成功,接下来是对xadmin的部署。

    首先在settings.py中将xadmin注册到app中:


    这里的crispy_forms是xadmin的依赖包,也要注册到app中。

    然后在url.py中配置xadmin的url:

    import xadmin
    urlpatterns = [
        # path('admin/', admin.site.urls),
        path('xadmin/',xadmin.site.urls)
    ]

    此时我们就完成了对xadmin的配置,但是这时候运行项目会出现如下错误:


    这是因为xadmin需要一些数据表进行支持

    ~$python manege.py makemigrations
    ~$python manage.py migrate

    完成后启动项目就成功在Django2下配置xadmin了!


    展开全文
  • Django1.x 与Django2.x中path与url的区别

    千次阅读 2018-12-05 17:03:32
    Django1.x 与Django2.x中path与url的区别 Django2.0官方中文文档:https://docs.djangoproject.com/zh-hans/2.1/ 在翻阅Django2.0官方中文文档时,入门篇中的样例使用的是path部署路由,我想用Django1.x中的正则...

    Django学习第二天

    Django2.0官方中文文档:https://docs.djangoproject.com/zh-hans/2.1/
    

    在翻阅Django2.0官方中文文档时,入门篇中的样例使用的是path部署路由,我想用Django1.x中的正则形式去匹配链接,但是怎么匹配,网页都是弹出page not found错误,显示找不到链接,不得已的情况下将path换为了url发现网页能够正常匹配显示。
    通过查阅相关文档发现,Django2.x中的path不支持正则匹配,但在同一目录下的re_path与Django1.x中的url功能大部分相同可以替代url。

    from django.conf.urls import url,include
    from .views import *
    from django.urls import re_path,path
    app_name = 'user'
    urlpatterns = [
        re_path(r'register',RegisterView.as_view(),name='register'),
        re_path(r'repassword',RePasswordView.as_view(),name='repassword'),
        re_path(r'^', index,name='index'),
        # url(r'register',RegisterView.as_view(),name='register'), #下列三行代码与上列三行的效果相同
        # url(r'repassword',RePasswordView.as_view(),name='repassword'),
        # url(r'^', index,name='index'),
    ]
    

    参考文献

    https://blog.csdn.net/qq_40272386/article/details/78800507
    

    笔者目前才刚刚开始django的学习,如有错误之处,请大牛见谅指出

    展开全文
  • Django:Django2 Nginx:Nginx1.10.3 二.安装软件 该操作使用的是root账号,如果不是root账号,那么需要在命令前面加sudo.示例:sudo apt-get update 1.升级系统(慎重选择) root@iZ6x44ao8frlx0Z:~# apt-get ...
  • Django2】安装xadmin2遇到的坑

    千次阅读 2018-12-07 21:45:53
    django2 --&gt; xadmin2   2. 可以考虑升级pip python -m pip install --upgrade pip   3. settings中install app中加入 'xadmin', 'crispy_forms',   4. future模块找不到之类 因为我们拷贝的源...
  • Django2 连接 MySql8 的完美方式

    千次阅读 2018-10-28 11:20:57
    Django2 连接 MySql8 的完美方式 Django 默认指定的 MySQL 驱动 mysqlclient 包安装十分容易失败,而且并不认识 MySQL8 的默认用户加密方式 caching_sha2_password,需要更改加密方式,操作十分繁琐。 如果使用 ...
  • django2.x版本在linux下安装

    千次阅读 2018-07-11 21:18:23
    提供了django2.多的版本的pip安装命令,但是我失败了,而且不知道问题在哪,之后将其源码下载下来进行编译,安装。在相关路径下使用命令:sudo python3 setup.py install我没用过pip3 install Django==2.0.7这个命令...
  • Celery #0 需求 每隔3秒钟,把当前的时间写入数据库 ...django-celery (3.2.2) # 如果Django2以上的版本,django-celery不能是低版本 django-crontab (0.7.1) django-redis (4.9.0) 1.2前提条件 redis可以正常使用...
  • 安装Django 2需要使用Python3中的pip

    千次阅读 2018-04-09 00:49:51
    Django 2依赖于Python3,安装命令pip install Django==2.0.4用到的pip也需要使用Python3中的pip(默认安装在/usr/local/python35/bin目录下),否则安装会出错,例如在远端服务器上找不到Django 2的package;...
  • Django2.x path 版本URL正则匹配问题 将path改成re_path 导入re_path
  • Windows7、Python3.7、Django2、MySQL8 功能要求实现: 1、实现用户注册 2、展示用户信息 项目搭建步骤: 1、创建项目(sutdentsite) django-admin startproject sutdentsite 2、创建应用(student) python ...
  • django2.x报错No module named 'django.core.urlresolvers'

    万次阅读 多人点赞 2018-01-05 10:03:20
    解决方法就是: from django.urls import reverse 最近从django1.9迁移到django2.0中出现一个意外的报错: ...简单来说,原因就是:django2.0 把原来的 django.core.urlresolvers 包 更改为了 django.urls包,
  • django2.x URL中path()与re_path()的用法

    千次阅读 2019-06-07 22:06:18
    在新版本Django2.x中,url的路由表示用path和re_path代替,模块的导入由django1.x版本的from django.conf.urls import url,include变成现在的Django2.x中的from django.urls import path, re_path, include: ...
  • 我们首先简要来看下Django2与@Vue/Cli3如何整合 创建Django2项目 通过django-admin startproject mysite命令创建 创建后端服务app cd mysite目录后,django-admin startapp backend 创建vue项目 vue create ...
  • Django是一款基于python语言的开源Web开发框架。Django框架有一个强大的后台管理系统“admin”,只需要少量的代码,admin就能生成相应库表的增删改查操作界面。 Django GitHub地址https://github.com/django/django...
  • django2 使用include报错

    千次阅读 2019-05-02 18:37:29
    环境:python3.6+django2.2.1 在使用include时报错如下: Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call ...
  • 在python3中使用django2的时候,在设置urls的时候,会遇到一些坑。这里做一下记录。 1,系统的urls.py里,这里在1.X的时候,都是采用的url方式。如下 url(r'^', include("test1.urls")), 在2.0中,...
  • django2】模型 django 1.10 + sqlite3

    千次阅读 2017-03-05 12:06:11
    Python版本3.5,django版本1.10 1 新建项目 ...2 启动服务器,查看是否正常  manage.py runserver 3 进入工程website1一级文件夹下新建app  python manage.py startapp appdemo 4 将新建立的app
  • Windows 一、django下载安装 下载地址: ...cmd进入 Django 目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages 二、配置环境变量 在环境变量path中...
  • 作者在Python 3.6.1 Django 2.1环境下开发Web应用,主要参考Runoob教程,博文大部分内容引用于之。然而,因为Django版本不同,部分操作存在差异。本文主要记录作者对教程的实现过程和遇到的问题。 下文中,Python3...
  • Django2.x中url路由的path()与re_path()参数解释 转自:https://www.cnblogs.com/cpl9412290130/p/9611293.html url 在新版本Django2.x中,url的路由表示用path和re_path代替,模块的导入由django1.x版本的from ...
  • django2无法显示图片

    千次阅读 2019-03-29 10:59:59
    这次我遇到了一个坑,我通过django中的models模块与mysql数据库做交互,其中涉及到存图片的问题,我的设想是上传图片,然后图片保存在media下的img文件夹中,我就在settings中配置media的静态路由。 MEDIA_ROOT = ...
  • 项目目录如图所示; 要在HTML文件中访问media文件夹下的... 配置setting.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, "media") ...from django.urls import re_path from django.views.static ...
  • Django2.+ path配置

    千次阅读 2018-06-14 20:39:06
    2017年12月2号,Django2.0发布!!!所以之前1.8版本的已经有所改变。其中url变成path。9月23日Django发布了2.0a1版本,这是一个 feature freeze 版本,如果没有什么意外的话,2.0正式版不会再增加新的功能了。按照...
  • 场景与环境是这样的,win7下python3.6,django2,小版本不知道了。安装django官网教程一步步的实现了一个polls程序。ps,大龄自学者,一直是初学者,这个开始教程,隔三差五我要重复一次。丢人啊。polls程序跑出了...
  • django2 QueryDict对象获取值

    千次阅读 2019-06-18 12:21:52
    一、获取QueryDict对象获取值 获取QueryDict的值要用字典的方法(对象[‘key’])就可以得到值 但QueryDict要用特殊函数,getlist(key)就可以得到所有的值 ...注:参考django基础知识之QueryDict对象 ...
  • 8、django和数据库交互 8.0、前注 觉得文章写的对你有帮助,请点赞、关注、Star。 项目资源的github地址: https://github.com/qq20004604/Python3_Django_Demo 8.1、环境安装 首先,确保你安装了mysql。 如果没有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,298
精华内容 18,919
关键字:

django2