django2

来源:互联网 发布:淘宝卖家积分等级:皇冠 编辑:程序博客网 时间:2024/06/07 02:51
**url路由配置**    1.在app里面新建urls.py  from django.conf.urls import url  #从django配置路径 导入urlurlpatterns = [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’

![这里写图片描述](http://i2.muimg.com/1949/14ceee61dbaf99b5.png)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 modelsclass 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 modelsclass Hobby(models.Model):Pass..class Person (models.Model):#这个人具有很多的爱好hob = models.ManyToManyField(Hobby)

读取sqlite 数据

1.views.py import models2.Article = models.Article.object.get(id= 1)   取第一条id的数据3.Render(request,page,{‘from’:atticle})  需要穿什么数据自行传送AdminAdmin是django自带的自动化数据管理界面配置adminDjango已经自动创建好了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配置

“`

0 0