DjangoアプリをSQLインジェクション攻撃から保護するには、データベースと対話するときは常にパラメーター化されたクエリを使用する必要があります。Djangoでは、生のSQLクエリを構築する代わりに、filter（）やget（）メソッドなど、django ormが提供するクエリAPIを使用することを意味します。

Django ORMを使用することにより、フレームワークはクエリに渡されるデータの逃亡を自動的に処理し、SQL注入攻撃を防ぎます。たとえば、次のコードは、ユーザー名に基づいてユーザーを取得するためにフィルター（）メソッドを使用する方法を示しています。

django.contrib.auth.modelsからインポートユーザーから

defログイン（ユーザー名、パスワード）：
    user = user.objects.filter（username = username）.first（）
    user and user.check_password（パスワード）の場合：
        ＃ ログイン成功
    それ以外：
        ＃ ログインに失敗しました

このコードは、SQLクエリに直接含まれるのではなく、ユーザー名値がパラメーターとしてフィルター（）メソッドに渡されるため、SQLインジェクション攻撃から安全です。Django ORMは、SQL注入を防ぐために、ユーザー名値を逃げる自動的に処理します。

一般に、使用しているフレームワークに関係なく、データベースと対話するときに常にパラメーター化されたクエリを使用することがベストプラクティスです。これにより、アプリケーションがSQLインジェクション攻撃から保護され、コードが読みやすくなり、維持されやすくなります。
To protect your Django app from SQL injection attacks, you should always use parameterized queries when interacting with the database. In Django, this means using the query APIs provided by the Django ORM, such as the filter() and get() methods, instead of constructing raw SQL queries.

By using the Django ORM, the framework will automatically handle escaping any data that is passed to the query, preventing SQL injection attacks. For example, the following code demonstrates how to use the filter() method to fetch a user based on their username:

from django.contrib.auth.models import User

def login(username, password):
    user = User.objects.filter(username=username).first()
    if user and user.check_password(password):
        # Login successful
    else:
        # Login failed

This code is safe from SQL injection attacks because the username value is passed to the filter() method as a parameter, rather than being included directly in the SQL query. The Django ORM automatically handles escaping the username value to prevent SQL injection.

In general, it's best practice to always use parameterized queries when interacting with the database, regardless of the framework you are using. This will help ensure that your application is protected against SQL injection attacks, and will make your code easier to read and maintain.