1
susecjh 2018-08-30 12:11:21 +08:00 via Android
这样好点,我们公司写一个 urls 里面,感觉像一坨屎
|
2
chenstack 2018-08-30 12:16:16 +08:00 1
|
3
huangzhe8263 2018-08-30 12:17:12 +08:00 1
附图的话, 安 v2 的 chrome 插件然后用微博图床就行.
and 建议这种去看官方最新的文档... |
4
chenstack 2018-08-30 12:21:46 +08:00 1
还有你说的 path 是 django 2.0 的写法,建议多看看官方文档,另外也可以用旧的写法的,旧模块有保留。
新写法的话,基本就是 url 替换成 path,include 的引入位置也换了 from django.urls import path, include |
5
KinneyZhang OP 谢谢!
不过为什么一个项目会有不同的 app 呢?一个项目不就是一个 app 吗?麻烦举一个例子,新人刚学 django |
6
xpresslink 2018-08-30 13:02:09 +08:00 1
在 settings-py 里面有个 ROOT_URLCONF = 设置,用来指明项目最初始的 URL 解析。
理论上说是可以把整个项目所有 URL 都放在这一个文件里面的。如果是个小项目这么做也没有什么问题。 但是一个大项目下面有多个子 app,URL 条目太多了放在一个文件中不好维护。 所以在每个 app 目录下加一个 urls.py (文件名随便,只是习惯上大家都这么起名字, 只要在 include 时候对应上就可以), 管理本 app 的 URL。 在项目初始的 urls.py 中用 include ('app_name.urls')方式把 app 的 URL 定义合并到一起。 这样做的好处是这个 app 比较容易摘除,或拿到别个项目中去复用。 |
7
chenstack 2018-08-30 13:02:10 +08:00 1
@KinneyZhang 举个例子,一个小程序商场后端,分成商户管理后台和小程序 api 两个 app。或者几个小项目共用账户系统也是有可能的。
|
8
anthoy 2018-08-30 13:47:39 +08:00 1
以下是菜鸡我的理解:
django 默认创建的时候在自动生成的文件夹(和你的项目命一样的,我也忘了叫什么,暂时叫主目录,里面是一些配置文件)中会自动生成一个 urls.py 文件,里面可以进行 url 与 view 的关联,但在很多大型网站开发中,对于要使用的 url 数量比较多,为了更好的管理,通过创建不同的 app 进行功能划分,每个 app 下创建自己的 urls.py 文件,通过 includet 添加到主目录下的 urls.py 文件中,实现 urls 模块化管理,有点类似 flask 的蓝图的模块化 好处:大型网站多个 app 时,url 管理方便,而且可以通过在主目录中为每个 app 的 url 设置同一的前缀 |
9
RuAHip 2018-08-30 14:09:46 +08:00
楼主你好,最近我也在看那块代码,我直接在 ubuntu 上按照书上写的来实现的,但是运行的时候,就报错了,然后发现时版本问题,书上的版本是 Django 1.xx 。而我现在用的是 Django 2.1,两个版本导入包不一样。我想问一下你是否遇到了在添加了新的 urls 配置之后,发现项目 启动失败,报错。
|
10
zjb861107 2018-08-30 14:30:09 +08:00 1
书上的版本是 Django 1.xx 。而我现在用的是 Django 2.1
———————— 你可以在安装的时候指定版本的,先把 demo 跑起来,基本原理搞明白,再去尝试最新版 |
12
KinneyZhang OP @RuAHip 是的,就是这个问题,所有我准备听大佬们的意见,去看看 django2.x 的说明文档
|
13
toono 2018-08-30 19:18:05 +08:00 via iPhone
建议看一看 Django 官网的文档,一目了然,而且 QuickStart 这部分有中文。
|
14
Anjaxs 2018-08-30 23:11:46 +08:00
|
15
yuoboo 2018-08-31 11:05:58 +08:00 1
大致说一下,说得不对的地方请指正!
有 settings,wusgi 的目录称为项目同名目录, 因为在创建项目的时候这个文件夹自动创建而且名字与项目名相同, 项目同名目录中的 urls.py 文件为全局视图映射管理, url 传到这里通过正则匹配,这里之所有分为两层 urls.py 文件是为了方便管理和查找,而且结构更为清晰, 第二个 urls.py 文件一般位于 APP 文件夹里面, 负责某一个 APP 的视图映射, 如果你只想写一个 urls.py 文件也是可以的,将所有 APP 的视图函数全部导入到项目同名目录的 urls.py, 这样 APP、视图函数多了之后会非常的混乱, 一般项目十多个 APP 或者更多,每个 APP 十几或者几十个视图函数的时候, 你这个 urls.py 文件中上百条映射查找起来是一件很头疼的事情, 修改的时候你还得上下翻滚交叉查找, 你才会发现把不同 APP 的映射关系独立出来是一件多么明智的事情! 尝试理解这个设计, 说不定楼主用顺手了还会觉得,哇这样分还是有道理的!哈哈哈~~~~ |
16
huaerxiela 2018-08-31 17:52:32 +08:00 1
@KinneyZhang 抽象多个 app 才比较合适,你说的项目一个 app 的情况,一般情况下都是设计的不太合理,就像数据库的设计一定不要让新手弄得道理一样
|