博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django(一)
阅读量:5863 次
发布时间:2019-06-19

本文共 2018 字,大约阅读时间需要 6 分钟。

学了几天的django。照着官方的教程学了4节。大概对django有了一个大体的了解。

app和project有区别。

What’s the difference between a project and an app? An app is a Web application that does something – e.g., a Weblog system, a database of public records or a simple poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.

application指的是一个网站的应用程序。而project指的是应用程序的集合。它管理着整个网站的运行。

然后我建了一个project叫mysite,按照教程建了一个application叫polls。就是一个简单的投票系统。

默认的app还有用户管理等app。

系统配置都在mysite目录下的setting里。

比如数据库的配置,中间件,模板等。还有你新建的app。

INSTALLED_APP = [

'polls.apps.PollsConfig',

'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

]

这里列的应用都是默认被开启了。比如admin。

然后看看新建的polls应用。

polls/    __init__.py    admin.py apps.py migrations/ __init__.py models.py tests.py views.py

我说说我在练习中使用到的几个文件。

models.py

这是创建数据库对象的文件。

把你需要的数据库模型写在这个文件里。

class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')

主键会自己创建为自增int型。

具体如下图:

连表名都替你生成了。

怎么生成数据库数据?

这里用的命令是migrate

具体生成什么样的数据模型,

在这个文件里看

polls/migrations/0001_initial.py:

执行命令之前可以这么看

python manage.py sqlmigrate polls 0001

最后执行命令

python manage.py migrate

程序怎么知道polls这个应用呢?

在polls目录下的apps.py里要配置。

 

migrate这个命令之前好像在ROR里见过。。。

看来这些框架其实都差不多。

然后是view

view主要在应用下的views.py文件里去写。

如果用html怎么办?

在polls下创建template/polls/xxx.html

程序会按照这个路径去找。

那在浏览器里输入localhost:8000/polls/

后台怎么知道请求的是views.py里的哪个函数呢?

在urls.py里。

url()函数就够了。

urlpatterns = [    url(r'^$', views.index, name='index'), ]

url(regexviewkwargs=Nonename=None)

url()函数传递四个参数,第一个是正则表达式,即url请求路径。

然后是视图,引用views.py中的函数。

后两个参数选填。

kwargs 是对url的补充。如下:

url(r'^blog/(?P
[0-9]{4})/$', views.year_archive, { 'foo': 'bar'}),

请求的url就是/blog/2005/,调用views.py的函数为views.year_archive(request, year='2005',foo='bar')

最后一个name可以用来明确模版的名字。

大概学了这么多,其中还有好多不是很明白。还需要继续看看。

转载于:https://www.cnblogs.com/nathanieltian/p/6181532.html

你可能感兴趣的文章
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
详解Microsoft.AspNetCore.CookiePolicy
查看>>
SCDPM2012 R2实战一:基于SQL 2008 R2集群的SCDPM2012 R2的安装
查看>>
SQL SERVER中字段类型与C#数据类型的对应关系
查看>>
Linux lsof命令详解
查看>>
SVG path
查看>>
js判断checkbox是否选中
查看>>
多系统盘挂载
查看>>
MySQL函数怎么加锁_MYSQL 函数调用导致自动生成共享锁问题
查看>>
Dynamic Performance Tables not accessible Automatic Statistics Disabled for this session
查看>>
MR1和MR2的工作原理
查看>>
Eclipse中修改代码格式
查看>>
GRUB Legacy
查看>>
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
我的友情链接
查看>>
hexo博客解决不蒜子统计无法显示问题
查看>>
python实现链表
查看>>
java查找string1和string2是不是含有相同的字母种类和数量(string1是否是string2的重新组合)...
查看>>
Android TabActivity使用方法
查看>>
java ShutdownHook介绍与使用
查看>>