django(二)

参考bilibili.com视频教程 作者:_捷佳_

写一个新的django的app

*自动补全 自己添加模板的功能https://blog.youkuaiyun.com/qq_35556064/article/details/80333083

*pycharm运行django的方法 https://www.cnblogs.com/callyblog/p/7898630.html

1.新建:一个app,在cmd命令行下运行到本地文件夹 使用python manage startapp gally 即可

2.路由:在gally中新建一个urls.py,由于会用到path,则需要导入path库,而且urls仅仅是路由功能,目的是将网页的东西指向该app的view文件里面的程序view.gs,在这一步并不算完成,还需要再主页中的gs功能路由指向本页的路由,相当于双重路由

#gally.urls.py
from django.urls import path
from . import views
urlpatterns = [
    path('', views.gs, name='gs'),
]
#site.urls.py
from django.urls import path,include
urlpatterns = [
    path('gs/', include('gally.urls')),

3.在主项目中注册该app,所以在文件夹里注册的位置为:

gally文件夹里面apps.py里面
class GallyConfig(AppConfig):
    name = 'gally'
# Application definition
#site.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',
#new
    'gally.apps.GallyConfig',  #这就是该注册的位置
]

4.在app里写一个model并在app文件夹里注册

#gally.models.py
class Gally(models.Model):
    description=models.CharField(max_length=50)  
    #这是django的一个模块功能,顾名思义,全是写字的

#gally.admin.py
from .models import Gally  #记住这里是.models

admin.site.register(Gally)

5.makemigrations和migrate的使用

在cmd下 python manage.py ***使用这两个就ok

6启用一个简单的个人主页

大体框架做完了,逐渐完善功能,则需要再该app的views和html上做工作了

#view.py
from .models import Gally   #同级导入
def gs(request):
    gallys=Gally.objects  #将.models上图中的class gally对象导入,将该对象所有属性都给gallys
    return render(request,"gs_home.html",{'gallys':gallys}) #同时将字典参数也传给html页面
<body>
{% for gally in gallys.all %}   #python的语句使用迭代对象
{{gally.description}}
<br>
{% endfor %}
</body>
</html>

7.添加图像路径

from django.conf.urls.static import static   #标注格式
from django.conf import  settings  #在settings里面设置了MEDIA_URL,MEDIA_ROOT两项,下面就可以引用

urlpatterns = [
        ......
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) #static是个列表,添加这两个固定就可以,固定操作

#settings.py里面配置上两个函数
MEDIA_URL  = '/media/'
MDDIA_ROOT = os.path.join(BASE_DIR, 'media')#固定格式即可,记住OS.path

 

以下是一个Django次开发的详细指引: ### 1. 项目理解 在进行次开发前,需全面理解现有Django项目。若项目是在线考试系统,要明确已实现的功能,如仅实现了单选题功能,后续可添加其他题型等功能。熟悉项目的整体架构,包括urls.py文件如何匹配浏览器请求,views.py文件中定义的方法如何处理请求并返回响应,例如当浏览器访问Django服务器时,会被urls.py文件匹配,然后访问views.py中定义的方法,像`def index(request): return render(request,"index.html")` [^2]。 ### 2. 环境搭建 - **虚拟环境**:查看虚拟环境位置,使用`pip show django|grep -i location`命令。确保在虚拟环境中进行开发,以避免不同项目间的依赖冲突。 - **项目启动**:使用`python manage.py runserver`运行Django服务器,确保项目能正常启动。若需创建超级管理员,可使用`python manage.py createsuperuser`命令 [^3]。 ### 3. 功能添加 - **需求分析**:根据实际需求确定要添加的功能。如在线考试系统,可添加多选题、判断题等功能。 - **数据库迁移**:若新功能涉及数据库表结构的改变,需进行数据库迁移。使用`python manage.py makemigrations`生成数据迁移文件,再使用`python manage.py migrate`迁移数据 [^3]。 - **代码编写**:在相应的app中编写代码实现新功能。例如,在views.py中添加处理新功能的视图函数,在urls.py中添加对应的URL路由。 ### 4. 代码优化 - **性能优化**:检查代码中是否存在性能瓶颈,如数据库查询优化、缓存使用等。 - **代码规范**:遵循PythonDjango的代码规范,提高代码的可读性和可维护性。 ### 5. 测试与部署 - **测试**:对新添加的功能进行测试,确保其正常运行。可使用单元测试、集成测试等方法。 - **部署**:将次开发后的项目部署到生产环境。使用`python manage.py collectstatic`收集静态文件 [^3]。 ### 6. 知识整理 开发过程中,将碎片化的知识进行整理,便于后续高效开发项目,节约时间成本。可参考相关文章对常用指令进行整理,如创建项目和注册app的指令、数据库迁移指令等 [^3]。 ### 示例代码 以下是一个简单的添加新视图和URL路由的示例: ```python # views.py from django.shortcuts import render def new_function(request): return render(request, "new_function.html") # urls.py from django.urls import path from . import views urlpatterns = [ path('new_function/', views.new_function, name='new_function'), ] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值