Initializing a django project

Initializing a project

  1. install conda env for this project conda create --name mydjangoenv python=3.8

  2. Activate conda env and Install Django pip install django

  3. using django-admin startproject withme . to create the project in the current directory

  4. Run server by using python manage.py runserver

  5. Create a pages directory using python manage.py startapp pages (in conda env)
    add app config definition in withme/setting.py

  6. Create a new directory named template, which has two directories and base.html, pages(other pages) and partials(the partials of base.html)
    In withme/setting.py, set the path of template: 'DIRS': [os.path.join(BASE_DIR, 'template')]

  7. Create a new directory named static in withme folder, which includes Static files (CSS, JavaScript, Images)
    In withme/setting.py, set the path of static,

    复制代码
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    STATIC_URL = 'static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'withme/static')
    ]
  8. run python manage.py collectstatic to create a static directory outside of withme folder, and add this folder to .gitignore

  9. In the first time, Add a page using 3 steps:

    1. In pages/views.py, write a view

      复制代码
      from django.http import HttpResponse
      def index(request):
          return HttpResponse("Hello")

      or render a page

      复制代码
      from django.shortcuts import render
      def index(request):
          return render(request, 'pages/index.html')
    2. Create a URLconf in pages/urls.py(need to add this file)

      复制代码
      from django.urls import path
      from . import views
      
      urlpatterns = [
          path('', views.index, name='index')
      ]
    3. Point the root URLconf at the pages.urls module. In withme/urls.py

      复制代码
      from django.contrib import admin
      from django.urls import path, include # add include
      
      urlpatterns = [
          path('', include('pages.urls')), # add a url to urlpatterns
          path('admin/', admin.site.urls),
      ]

Create a new app (posts)

  1. In template, create a folder called posts, which includes 3 files, 'post' 'posts' 'search'

    • Each file using this code to init

      复制代码
      {% extends 'base.html' %}
      
      {% block content %}
      <h1>listings</h1>
      {% endblock %}
  2. python manage.py startapp posts tp create a new app posts

  3. add app config in withme/settings.py

    复制代码
    # Application definition
    INSTALLED_APPS = [
        'pages.apps.PagesConfig',
        'posts.apps.PostsConfig',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
  4. In withme/urls.py, Add a URL to urlpatterns path('posts/', include('posts.urls')),

  5. Create a url.py file in post app, copy the code in pages/urls.py

Database setup

  1. install postgreSQL16 and pgadmin4

  2. open terminal: type in this

    postgres=# \password postgres
    Enter new password for user "postgres":
    Enter it again:
    postgres=# CREATE DATABASE withme OWNER postgres;
    CREATE DATABASE

  3. create a server in pgadmin, and in withme database, set some infos

  4. pip install psycopg2
    pip install psycopg2-binary

  5. change data setting in withme/settings.py

    from

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': BASE_DIR / 'db.sqlite3',
    }
    }

to

复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'withme',
        'USER': 'postgres',
        'PASSWORD': '123456',
        'HOST': 'localhost'
    }
}
  1. pip install Pillow

  2. Design database

  3. pythpm manage.py makemigrations

  4. python manage.py migrate

  5. refresh servers in pgadmin, and check if they create table

Design database

  1. design schemas
  2. write models in (ex.) listings/models.py
  3. If you add foreignKey, you need to import other model

Create superuser

  1. go to localhost:8000/admin/

  2. python manage.py createsuperuser to create a super user called administrator and password is 123456

Register models with admin

  1. register models in listings/admin.py

  2. reload django administration page, you can see there is a listings model

Media folder

  1. add Media folder setting, just like static folder setting we did before

  2. add url to urlpatterns

in localhost/admin, add some realtors and listings, the image that have been uploaded will display inside media folder(auto-create)

Custom the admin page

go to template, create admin/base_site.html, and then custom

if you want to custom the data display, like not just show title(name) instead of other field, goto listings/admin.py

Pull data from listing model

listings/views.py

import models

相关推荐
摇滚侠38 分钟前
Spring Boot 3零基础教程,自动配置机制,笔记07
spring boot·笔记·后端
java1234_小锋39 分钟前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras实现逻辑回归
python·深度学习·tensorflow·tensorflow2
java1234_小锋44 分钟前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - Sequential顺序模型
python·深度学习·tensorflow·tensorflow2
程序员爱钓鱼2 小时前
Go语言实战案例——进阶与部署篇:性能优化与 pprof 性能分析实践
后端·google·go
爱编程的小白L3 小时前
基于springboot志愿服务管理系统设计与实现(附源码)
java·spring boot·后端
雨夜的星光5 小时前
Python JSON处理:load/loads/dump/dumps全解析
开发语言·python·json
fen_fen6 小时前
Java打包时,不将本地Jar打包到项目的最终 JAR 中
开发语言·python·pycharm
稚辉君.MCA_P8_Java7 小时前
JVM第二课:一文讲透运行时数据区
jvm·数据库·后端·容器
可触的未来,发芽的智生8 小时前
触摸未来2025.10.10:记忆的种子,当神经网络拥有了临时工作区,小名喜忆记系统
人工智能·python·神经网络·机器学习·架构
mortimer9 小时前
在 Windows 上部署 NVIDIA Parakeet-TDT 遇到的坑
python·github·nvidia